2013-02-14 43 views
-1

每個人都曾經在一段時間,我會出現以下NSInvalidArgumentException崩潰我的應用程序(通過crittercism)崩潰報告:GKAchievement reportAchievements:withCompletionHandler:崩潰

+[GKAchievement reportAchievements:withCompletionHandler:]: unrecognized selector sent to class 0x3f940a84 

的代碼看起來是這樣的:

NSMutableArray *achivementArray = [NSMutableArray arrayWithCapacity:20]; 

for (NSString *achievementID in achievementsToUpload) // achievementsToUpload is a NSSet 
{ 
    GKAchievement *achievement = [[GKAchievement alloc] initWithIdentifier:achievementID]; 
    if (achievement) 
    { 
     ... 

     [achivementArray addObject:achievement]; 
    } 
} 

[GKAchievement reportAchievements:achivementArray withCompletionHandler:^(NSError *error) 
{ 
    if (error != nil) 
    { 
     NSLog(@"Error sending achievement: %@", error.localizedDescription); 
    } 
}]; 

如果錯誤確實存在於ReportAchievements:withCompletionHandler:中,據我所知,錯誤的來源可能來自兩個地方:1)achivementArray不是NSArray或2)錯誤實際上不是一個NSError。

在#1的情況下,我創建了一個數組在行上的幾行,並在情況#2,我懷疑操作系統發回一個非NSError對象。

任何想法?

回答

0

頭的樣子:

+ (void)reportAchievements:(NSArray *)achievements withCompletionHandler:(void(^)(NSError *error))completionHandler __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_6_0); 

那麼問題可能是您正在使用的基礎SDK。此方法從iOS 6.0開始可用。

希望它有幫助

+0

是的,就是這樣。不知道我是如何錯過的。 – 2013-02-26 17:44:19