Я получаю этот сбой в консоли:
2011-08-27 23:26:45.041 App[1672:3117] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil key'
*** First throw call stack:
(0x3231c8c3 0x362ee1e5 0x3231c7bd 0x3231c7df 0x32289679 0x3052e865 0x3220fd55 0x3221b7a3 0x3345e4b7 0x3345e38c)
terminate called throwing an exception[Switching to process 10243 thread 0x2803]
[Switching to process 10243 thread 0x2803]
Единственная строка, которая, как мне кажется, сработает в момент сбоя, относится к этой аварии:
UIImage *photo = [self.selectedDictionary objectForKey:@"ProfileImage"];
Здесь что-то выглядит не так? В чем может быть проблема?
Edit1:
Это сбой, когда я делаю это, чтобы вызвать метод:
Код:
if(actionSheet.tag == 1) {
[self showAchievements];
}
Это метод showAchievements:
Код:
- (void)showAchievements {
GKAchievementViewController *achievements = [[GKAchievementViewController alloc] init];
if (achievements != nil)
{
achievements.achievementDelegate = self;
[self presentModalViewController:achievements animated:YES];
}
}
- (void)achievementViewControllerDidFinish:(GKAchievementViewController *)viewController
{
[self dismissModalViewControllerAnimated:YES];
[viewController release];
}
Может ли это произойти из-за того, что я не подключил все правильно в iTC? Я определенно уверен, что в этом методе происходит сбой, и я не знаю, почему.
У кого-нибудь есть идеи?
Edit2: я подхожу к этому здесь, в моей консоли, прямо перед тем, как он падает, у него есть строка с надписью Пропущенный метод. Поэтому я ищу, где находится этот NSLog, и он находится в GameCenterManager.m, файл, необходимый для Game Center, я думаю. Вот метод:
- (void) callDelegate: (SEL) selector withArg: (id) arg error: (NSError*) err
{
assert([NSThread isMainThread]);
if([delegate respondsToSelector: selector])
{
if(arg != NULL)
{
[delegate performSelector: selector withObject: arg withObject: err];
}
else
{
[delegate performSelector: selector withObject: err];
}
}
else
{
NSLog(@"Missed Method");
}
}
Так из этого кода вы видите, что не так?
Спасибо!