2014-09-19 74 views
2

之前的iOS 8都正常工作。問題是: 我在不同類別的兩名觀察員:NSNotificationCenter defaultCenter iOS 8.通知沒有被傳遞給觀察者之一

的Class1:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didFinishParseUser:) 
              name:USERS_LOADED_NOTIFICATION_ID object:nil]; 

等級2:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didFinishParseUser:) 
               name:USERS_LOADED_NOTIFICATION_ID object:nil]; 

,並通知被張貼在其他一些地方:

[FBRequestConnection startWithGraphPath:@"me/friends?fields=id,first_name,last_name,picture.type(small)" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
    if (!error) { 
     [[NSNotificationCenter defaultCenter] postNotificationName:USERS_LOADED_NOTIFICATION_ID object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys: currentUser, @"user", friends, @"friends", nil]]; 
    } else { 
     // An error occurred, we need to handle the error 
     // See: https://developers.facebook.com/docs/ios/errors 
    } 
}]; 

爲所有提到的類調用addObserver方法,但是通知i只是向一位觀察員遞送。如果我刪除這個觀察者(接收通知),則另一個接收通知。 在iOS 8之前,兩位觀察者都會收到通知。

你能幫我解決這個問題嗎?

回答

0

找到答案。 iOS 8還有另外一種方式來註冊接收遠程通知。我無法獲得設備令牌和應用程序中斷線:

NSDictionary *item = @{UID_ID : sCurrentUserId, @"deviceToken": appDelegate.deviceToken, @"handle": @"", @"friends": friends}; 

第二觀察員從未收到通知。

-1

您需要註冊您的NSNotifications在iOS 8和更高的工作,但並不需要,如果您的iOS版本低於iOS的8 使用下面的代碼

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 

if ([[vComp objectAtIndex:0] intValue] >= 8) { 
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationActivationModeBackground categories:nil]]; 

} 

編碼快樂

註冊
+0

我想這是關於本地通知...對不起 – 2014-11-21 05:35:59

+0

但可能會幫助有人陷入這個問題。 – 2014-11-21 05:36:20

相關問題