2013-02-14 44 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