Прошу прощения заранее, если это совершенно не обсуждаемый вопрос, или если я не включаю достаточно информации - я очень новичок в разработке для iOS (и Objective-C), и у меня есть привычка прыгатьв глубокий конец ...
У меня проблемы с пониманием кода "callDelegate" в GameCenterManager.m, который находится в примере кода GKTapper и также приведен в этом уроке tuts +: http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-game-center-achievements-and-leaderboards-part-2/
Это код:
- (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");
}
}
Мое приложение всегда регистрирует эту строку "Пропущенный метод", но я не уверен, что на самом деле делает этот код callDelegate (поэтому я не могу это исправить).Я считаю, что лучший способ продвинуться вперед - это узнать, что это на самом деле делает, и получить лучший результат, чем «Пропущенный метод» ...
Одно предостережение: мое приложение в настоящее время использует Game Center в режиме песочницы, так как яЯ все еще развиваю это.Эту строку «Пропущенный метод» можно ожидать в этой ситуации - я тоже не уверен в этом.
Кто-нибудь сможет перевести этот код в форму абзаца?Я особенно не уверен насчет части «[Delegate RespondsToSelector: selector]».
В качестве альтернативы, кто-нибудь сможет переписать строку NSLog, чтобы она выводила более / уместную информацию о проблеме?Я пытался это сделать, надеясь увидеть, какой селектор не проходит через 'responsedsToSelector' должным образом, но, похоже, он не работает:
NSLog(@"Missed Method, %@", selector);