每隔一段时间,我会通过以下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对象。
有什么想法吗?
答案 0 :(得分:0)
标题看起来像:
+ (void)reportAchievements:(NSArray *)achievements withCompletionHandler:(void(^)(NSError *error))completionHandler __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_6_0);
所以问题可能出在你正在使用的基础sdk中。此方法从iOS 6.0开始提供。
希望它会有所帮助