Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
GMPhobos
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gengmeiios
GMPhobos
Commits
bb5c4d3e
Commit
bb5c4d3e
authored
Jun 02, 2016
by
汪洋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
针对一些字典的set value添加了nil判断
parent
735c6882
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
69 additions
and
31 deletions
+69
-31
project.pbxproj
Example/GMPhobos.xcodeproj/project.pbxproj
+4
-3
Podfile.lock
Example/Podfile.lock
+2
-2
GMPhobos.podspec.json
Example/Pods/Local Podspecs/GMPhobos.podspec.json
+2
-2
Manifest.lock
Example/Pods/Manifest.lock
+2
-2
Info.plist
Example/Pods/Target Support Files/GMPhobos/Info.plist
+1
-1
GMPhotoTest.m
Example/Tests/GMPhotoTest.m
+45
-3
Phobos.m
Pod/Classes/Phobos.m
+13
-18
No files found.
Example/GMPhobos.xcodeproj/project.pbxproj
View file @
bb5c4d3e
...
...
@@ -480,7 +480,7 @@
GCC_WARN_UNINITIALIZED_AUTOS
=
YES_AGGRESSIVE
;
GCC_WARN_UNUSED_FUNCTION
=
YES
;
GCC_WARN_UNUSED_VARIABLE
=
YES
;
IPHONEOS_DEPLOYMENT_TARGET
=
7.1
;
IPHONEOS_DEPLOYMENT_TARGET
=
8.0
;
ONLY_ACTIVE_ARCH
=
YES
;
SDKROOT
=
iphoneos
;
TARGETED_DEVICE_FAMILY
=
"1,2"
;
...
...
@@ -513,7 +513,7 @@
GCC_WARN_UNINITIALIZED_AUTOS
=
YES_AGGRESSIVE
;
GCC_WARN_UNUSED_FUNCTION
=
YES
;
GCC_WARN_UNUSED_VARIABLE
=
YES
;
IPHONEOS_DEPLOYMENT_TARGET
=
7.1
;
IPHONEOS_DEPLOYMENT_TARGET
=
8.0
;
SDKROOT
=
iphoneos
;
TARGETED_DEVICE_FAMILY
=
"1,2"
;
VALIDATE_PRODUCT
=
YES
;
...
...
@@ -567,7 +567,6 @@
BUNDLE_LOADER
=
"$(TEST_HOST)"
;
CODE_SIGN_IDENTITY
=
"iPhone Developer"
;
FRAMEWORK_SEARCH_PATHS
=
(
"$(SDKROOT)/Developer/Library/Frameworks"
,
"$(inherited)"
,
"$(DEVELOPER_FRAMEWORKS_DIR)"
,
);
...
...
@@ -578,6 +577,7 @@
"$(inherited)"
,
);
INFOPLIST_FILE
=
"Tests/Tests-Info.plist"
;
LIBRARY_SEARCH_PATHS
=
""
;
PRODUCT_BUNDLE_IDENTIFIER
=
"org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PROVISIONING_PROFILE
=
"c7e6dc21-c52f-40e4-a435-5e942f0af080"
;
...
...
@@ -600,6 +600,7 @@
GCC_PRECOMPILE_PREFIX_HEADER
=
YES
;
GCC_PREFIX_HEADER
=
"Tests/Tests-Prefix.pch"
;
INFOPLIST_FILE
=
"Tests/Tests-Info.plist"
;
LIBRARY_SEARCH_PATHS
=
""
;
PRODUCT_BUNDLE_IDENTIFIER
=
"org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PROVISIONING_PROFILE
=
"c7e6dc21-c52f-40e4-a435-5e942f0af080"
;
...
...
Example/Podfile.lock
View file @
bb5c4d3e
PODS:
- GMCache (0.1.0):
- TMCache (~> 2.1.0)
- GMPhobos (0.2.
6
):
- GMPhobos (0.2.
7
):
- GMCache (~> 0.1.0)
- TMCache (2.1.0)
...
...
@@ -14,7 +14,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
GMCache: a7b06a2d8a5a1c7cf023055c631ba9a0cd7c39fc
GMPhobos:
9f380d6cec55d94ab826d91f67835972b00013b8
GMPhobos:
d994cf5fe38fd4502cd11face2474d4dc8089ebf
TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed
PODFILE CHECKSUM: ab2b5ff1dcd8a35fd02cced6c06c7f9477b82d69
...
...
Example/Pods/Local Podspecs/GMPhobos.podspec.json
View file @
bb5c4d3e
{
"name"
:
"GMPhobos"
,
"version"
:
"0.2.
6
"
,
"version"
:
"0.2.
7
"
,
"summary"
:
"GM statistic data sdk"
,
"description"
:
"GM event track sdk."
,
"homepage"
:
"http://git.gengmei.cc/gengmeiios/GMPhobos"
,
...
...
@@ -10,7 +10,7 @@
},
"source"
:
{
"git"
:
"http://git.gengmei.cc/gengmeiios/GMPhobos.git"
,
"tag"
:
"0.2.
6
"
"tag"
:
"0.2.
7
"
},
"platforms"
:
{
"ios"
:
"8.0"
...
...
Example/Pods/Manifest.lock
View file @
bb5c4d3e
PODS:
- GMCache (0.1.0):
- TMCache (~> 2.1.0)
- GMPhobos (0.2.
6
):
- GMPhobos (0.2.
7
):
- GMCache (~> 0.1.0)
- TMCache (2.1.0)
...
...
@@ -14,7 +14,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
GMCache: a7b06a2d8a5a1c7cf023055c631ba9a0cd7c39fc
GMPhobos:
9f380d6cec55d94ab826d91f67835972b00013b8
GMPhobos:
d994cf5fe38fd4502cd11face2474d4dc8089ebf
TMCache: 95ebcc9b3c7e90fb5fd8fc3036cba3aa781c9bed
PODFILE CHECKSUM: ab2b5ff1dcd8a35fd02cced6c06c7f9477b82d69
...
...
Example/Pods/Target Support Files/GMPhobos/Info.plist
View file @
bb5c4d3e
...
...
@@ -15,7 +15,7 @@
<
k
e
y
>
CFBundlePackageType
<
/k
e
y
>
<
string
>
FMWK
<
/string
>
<
k
e
y
>
CFBundleShortVersionString
<
/k
e
y
>
<
string
>
0.2.
6
<
/string
>
<
string
>
0.2.
7
<
/string
>
<
k
e
y
>
CFBundleSignature
<
/k
e
y
>
<
string
>
????
<
/string
>
<
k
e
y
>
CFBundleVersion
<
/k
e
y
>
...
...
Example/Tests/GMPhotoTest.m
View file @
bb5c4d3e
...
...
@@ -7,8 +7,8 @@
//
#import <XCTest/XCTest.h>
#import
"Phobos.h"
#import
"WMCacheService.h"
#import
<GMPhobos/Phobos.h>
#import
<GMCache/WMCacheService.h>
#define PhobosCacheKey @"PhobosCacheKey"
...
...
@@ -47,7 +47,7 @@ NSString *const MockCityId = @"beijing";
-
(
void
)
testClientWithUserId
{
[
_client
setUserId
:
MockUserId
];
[
_client
setCurrentCityId
:
MockCityId
];
[
_client
track
:
MockEventId
];
[
Phobos
track
:
MockEventId
];
NSArray
*
array
=
[
_cache
fetchObjectAtDiskWithkey
:
PhobosCacheKey
];
XCTAssertTrue
(
array
.
count
==
1
,
@"array is empty"
);
NSDictionary
*
dict
=
[
array
objectAtIndex
:
0
];
...
...
@@ -113,4 +113,46 @@ NSString *const MockCityId = @"beijing";
XCTAssertTrue
([
keys
containsObject
:
@"params"
],
@"Missing params"
);
}
-
(
void
)
testOnPageStartThenOnPageEnd
{
[
_client
onPageStart
:
nil
businessId
:
nil
referer
:
nil
];
NSDictionary
*
pageEnterParam1
=
[
_client
valueForKey
:
@"_pageEnterParam"
];
XCTAssertTrue
(
pageEnterParam1
!=
nil
,
@"pageEnterParam 应该实例化成功"
);
XCTAssertTrue
(
pageEnterParam1
.
allKeys
.
count
==
4
,
@"pageEnterParam 应该有4个key"
);
[
_client
onPageStart
:
@"aaa"
businessId
:
@"adf"
referer
:
nil
];
NSDictionary
*
pageEnterParam2
=
[
_client
valueForKey
:
@"_pageEnterParam"
];
XCTAssertTrue
(
pageEnterParam2
!=
nil
,
@"pageEnterParam 应该实例化成功"
);
XCTAssertTrue
(
pageEnterParam2
.
allKeys
.
count
==
4
,
@"pageEnterParam 应该有4个key"
);
[
_client
onPageEnd
];
[
self
paramUnNilCheck
];
NSDictionary
*
pageEnterParam3
=
[
_client
valueForKey
:
@"_pageEnterParam"
];
XCTAssertTrue
(
pageEnterParam3
.
allKeys
.
count
==
0
,
@"pageEnterParam 应该在onPageEnd后为空的"
);
}
// 某种情况下没有先走 onPageStart,只走了OnPageEnd,此时数据应该完整,某个key对应的value可以是空
-
(
void
)
testOnPageEnd
{
[
_client
setValue
:
nil
forKey
:
@"_pageEnterParam"
];
[
_client
onPageEnd
];
[
self
paramUnNilCheck
];
}
-
(
void
)
testSimulativePageViewEvent
{
[
_client
simulativePageViewEventWithPageName
:
nil
BusinessId
:
nil
referer
:
nil
];
[
self
paramUnNilCheck
];
}
-
(
void
)
paramUnNilCheck
{
NSArray
*
array
=
[[
WMCacheService
sharedInstance
]
fetchObjectAtDiskWithkey
:
PhobosCacheKey
];
XCTAssertTrue
(
array
.
count
!=
0
,
@"PhobosCacheKey 下面应该有数据"
);
NSDictionary
*
dic
=
array
[
0
][
@"params"
];
XCTAssertTrue
(
dic
[
@"page_name"
]
!=
nil
,
@"page_name至少使用默认的空字符串"
);
XCTAssertTrue
(
dic
[
@"referer"
]
!=
nil
,
@"referer至少使用默认的空字符串"
);
XCTAssertTrue
(
dic
[
@"business_id"
]
!=
nil
,
@"business_id至少使用默认的空字符串"
);
}
@end
Pod/Classes/Phobos.m
View file @
bb5c4d3e
...
...
@@ -95,7 +95,7 @@ static NSString *sdkVersion = @"110";
}
#pragma
- mark
notification handler
#pragma
mark -
notification handler
/**
* @brief 设置对APP的通知监听
*
...
...
@@ -178,7 +178,7 @@ static NSString *sdkVersion = @"110";
}
#pragma
- mark
track event handler
#pragma
mark -
track event handler
+
(
void
)
track
:
(
NSString
*
)
eventId
{
[
Phobos
track
:
eventId
attributes
:@{}];
}
...
...
@@ -225,17 +225,12 @@ static NSString *sdkVersion = @"110";
}
}
#pragma
- mark
pv
#pragma
mark -
pv
-
(
void
)
onPageStart
:
(
NSString
*
)
pageName
businessId
:
(
NSString
*
)
businessId
referer
:
(
NSString
*
)
refererPageName
{
self
.
businessId
=
[
self
isNonEmpty
:
businessId
]
?
businessId
:
@""
;
self
.
refererPageName
=
[
self
isNonEmpty
:
refererPageName
]
?
refererPageName
:
@""
;
if
(
!
[
self
isNonEmpty
:
pageName
])
{
return
;
}
_pageEnterParam
=
[
NSMutableDictionary
dictionaryWithObjectsAndKeys
:
pageName
,
@"page_name"
,
self
.
businessId
,
@"business_id"
,
self
.
refererPageName
,
@"referer"
,
pageName
?:
@""
,
@"page_name"
,
self
.
businessId
?:
@""
,
@"business_id"
,
self
.
refererPageName
?:
@""
,
@"referer"
,
[
self
currentTime
],
@"in"
,
nil
];
}
...
...
@@ -243,10 +238,10 @@ static NSString *sdkVersion = @"110";
NSMutableDictionary
*
dict
=
[[
NSMutableDictionary
alloc
]
init
];
@try
{
[
dict
setObject
:[
self
currentTime
]
forKey
:
@"out"
];
[
dict
setObject
:
@
([
_pageEnterParam
[
@"in"
]
doubleValue
])
forKey
:
@"in"
];
[
dict
setObject
:
_pageEnterParam
[
@"page_name"
]
forKey
:
@"page_name"
];
[
dict
setObject
:
_pageEnterParam
[
@"business_id"
]
forKey
:
@"business_id"
];
[
dict
setObject
:
_pageEnterParam
[
@"referer"
]
forKey
:
@"referer"
];
[
dict
setObject
:
@
([
_pageEnterParam
[
@"in"
]
doubleValue
])
?:
@""
forKey
:
@"in"
];
[
dict
setObject
:
_pageEnterParam
[
@"page_name"
]
?:
@""
forKey
:
@"page_name"
];
[
dict
setObject
:
_pageEnterParam
[
@"business_id"
]
?:
@""
forKey
:
@"business_id"
];
[
dict
setObject
:
_pageEnterParam
[
@"referer"
]
?:
@""
forKey
:
@"referer"
];
[
dict
setObject
:
@
(
0
)
forKey
:
@"fake"
];
[
Phobos
track
:
@"page_view"
attributes
:
dict
];
...
...
@@ -262,9 +257,9 @@ static NSString *sdkVersion = @"110";
@try
{
[
dict
setObject
:[
self
currentTime
]
forKey
:
@"in"
];
[
dict
setObject
:[
self
currentTime
]
forKey
:
@"out"
];
[
dict
setObject
:
pageName
forKey
:
@"page_name"
];
[
dict
setObject
:
bid
forKey
:
@"business_id"
];
[
dict
setObject
:
referer
forKey
:
@"referer"
];
[
dict
setObject
:
pageName
?:
@""
forKey
:
@"page_name"
];
[
dict
setObject
:
bid
?:
@""
forKey
:
@"business_id"
];
[
dict
setObject
:
referer
?:
@""
forKey
:
@"referer"
];
[
dict
setObject
:
@
(
1
)
forKey
:
@"fake"
];
[
Phobos
track
:
@"page_view"
attributes
:
dict
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment