Я запустил этот код here, и он отлично работал. Однако у меня возникла проблема при попытке добавить его в мой проект. После класса YouTubeHelper вызова showAuthenticationViewController:
iOS Аутентификация YouTube EXC_BAD_EXCEPTION
– (void)showAuthenticationViewController:(UIViewController *)authView {
[self.navigationController presentViewController:authView animated:NO completion:nil];
}
Внутри GTMOAuth2ViewControllerTouch.m Я получаю exc_bad_access
, внутри loadView
, на [super loadView]
, как показано ниже:
– (void)loadView {
NSString *nibPath = nil;
NSBundle *nibBundle = [self nibBundle];
if (nibBundle == nil) {
nibBundle = [NSBundle mainBundle];
}
NSString *nibName = self.nibName;
if (nibName != nil) {
nibPath = [nibBundle pathForResource:nibName ofType:@”nib”];
}
if (nibPath != nil && [[NSFileManager defaultManager] fileExistsAtPath:nibPath]) {
[super loadView]; <<<< exc_bad_access here!
} else {
// One of the requirements of loadView is that a valid view object is set to
// self.view upon completion. Otherwise, subclasses that attempt to
// access self.view after calling [super loadView] will enter an infinite
// loop due to the fact that UIViewController's -view accessor calls
// loadView when self.view is nil.
self.view = [[[UIView alloc] init] autorelease];
#if DEBUG
NSLog(@"missing %@.nib", nibName);
#endif
}
}
Любая идея, почему это происходит и как это исправить?
Спасибо!
Эта демонстрация имеет последнее обновление более года назад, поэтому я считаю, что API Google изменен, и это может сломать эту демонстрацию. Поэтому вам лучше провести исследование и обратиться к официальным документам, вместо того, чтобы пытаться понять код, который не поддерживается, и может быть покрыт множеством ошибок. – EridB