GKAchievement报告成就:withCompletionHandler:崩溃

时间:2013-02-14 20:33:07

标签: ios game-center

每隔一段时间,我会通过以下NSInvalidArgumentException崩溃获取我的应用程序的崩溃报告(通过批评):

+[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对象。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

标题看起来像:

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

所以问题可能出在你正在使用的基础sdk中。此方法从iOS 6.0开始提供。

希望它会有所帮助