注意⚠️!!!
关于Capabilities中打开Push Notifications 开关:
在XCode7中这里的开关不打开,推送也是可以正常使用的,但是在XCode8中,这里的开关必须要打开不然会报错:
Error Domain=NSCocoaErrorDomain Code=3000 “未找到应用程序的“aps-environment”的授权字符串” UserInfo={NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}
打开后会自动在项目里生成entitlements文件。
页面1
- (void)viewDidLoad {
[super viewDidLoad];
//添加观察者
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(didUpdate:)
name: @"NotifBack"
object: nil];
}
#pragma mark - 更新数据
- (void)didUpdate:(NSNotification *)notification {
NSDictionary * Datadict = notification.userInfo[@"userInfo"];
NSData *jsonData = [[Datadict objectForKey:@"payload"] dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:nil];
colormodel = [self parseData:dict withModel:[DIEColorModel class]];
NSLog(@"status:%ld",(long)colormodel.status);
NSLog(@"r:%ld",(long)colormodel.RebCount);
NSLog(@"g:%ld",(long)colormodel.GreenCount);
NSLog(@"b:%ld",(long)colormodel.BlueCount);
NSLog(@"w:%ld",(long)colormodel.WhiteCount);
NSLog(@"rssi:%ld",(long)colormodel.rssi);
if ([NSThread isMainThread]) {
[self update];
}else{
dispatch_sync(dispatch_get_main_queue(), ^{
[self update];
});
}
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"NotifBack" object:nil];
}
页面2
//发出通知
[[NSNotificationCenter defaultCenter] postNotificationName:@"NotifBack" object:nil userInfo:@{@"userInfo":userInfo}];