У меня та же проблема, что и в этой теме: Что вызывает "Пропущенный метод" в этом код?
но я не понимаю, как это решить и если это вообще проблема.
Я делаю учебник в книге «Начало iOS Game Center и Game Kit» и получаю эту проблему. Я все время получаю «... Пропущенный метод» и пытаюсь понять, почему, к сожалению, не понимаю. Я также пытался использовать ответ в теме выше, но безрезультатно.
Я был бы очень признателен за помощь в этом.
Код, который я использую в настоящее время:
#import "GameCenterManager.h"
@implementation GameCenterManager
@synthesize delegate;
+(BOOL)isGameCenterAvailable {
Class gcClass = (NSClassFromString(@"GKLocalPlayer"));
NSString *reqSysVer = @"4.1";
NSString *currSysVer = [[UIDevice currentDevice]systemVersion];
BOOL osVersionSupported = ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending);
return (gcClass && osVersionSupported);
}
-(void)retrieveFriendsList {
if ([GKLocalPlayer localPlayer].authenticated == YES) {
[[GKLocalPlayer localPlayer]loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error) {
[self callDelegateOnMainThread:@selector(friendsFinishLoading:error:) withArg:friends error:error];
}];
} else {
NSLog(@"...You must authenticate first");
}
}
-(void)authenticateLocalUser {
if ([GKLocalPlayer localPlayer].authenticated) {
return;
}
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error){
[self callDelegateOnMainThread:@selector(processGameCenterAuthentication:) withArg:NULL error: error];
}];
}
-(void)callDelegateOnMainThread:(SEL)selector withArg: (id) arg error:(NSError*) err {
dispatch_async(dispatch_get_main_queue(), ^(void) {
[self callDelegate:selector withArg: arg error: err];
});
}
-(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");
}
}
Вывод после авторизации GC:
...Missed Method