Выйдите из системы, используя официальное руководство Facebook по iOS - PullRequest
2 голосов
/ 13 февраля 2012

Я следую инструкции Facebook iOS по выходу из системы .

Я добавил код учебника в мой файл делегата .m. Запустил его и когда я нажал на кнопку выхода из системы, он вылетает. Я не знаю, что означает ошибка. В окне журнала отображается:

[S3DEngine_AppDelegate logoutButtonClicked]: нераспознанный селектор отправлен на экземпляр 0xb011dd0

Я использую iPhone Simulator 5.0, XCode 4.2. Разница в учебнике заключается в том, что я НЕ использую applicationDidFinishLauchingWithOptions:. Я тоже пробовал эту функцию, но это та же ошибка.

Спасибо за любую помощь

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
    // Facebook
    // Add the logout button
    UIButton *logoutButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    logoutButton.frame = CGRectMake(40, 40, 200, 40);
    [logoutButton setTitle:@"Log Out" forState:UIControlStateNormal];
    [logoutButton addTarget:self action:@selector(logoutButtonClicked)
           forControlEvents:UIControlEventTouchUpInside];   
    [self.viewController.view addSubview:logoutButton];


    // Disable idle timer
    //
    [application setIdleTimerDisabled:YES] ;

    // Configure and start the accelerometer
    //
    [[UIAccelerometer sharedAccelerometer] setUpdateInterval:kAccelerometerFrequency] ;
    [[UIAccelerometer sharedAccelerometer] setDelegate:self] ;

    // Create the view controller
    //
    [window addSubview:viewController.glView];
    [window makeKeyAndVisible];

    // Configure and start animation
    //
    viewController.glView.iAnimationInterval = kAnimationFrequency ;
    [viewController.glView startAnimation];       

    // Configure ans start slpash view
    //
    CGRect frame = [[UIScreen mainScreen] bounds];
    splashView = [[UIImageView alloc] initWithFrame:frame];
    splashView.image = [UIImage imageNamed: @"Default.png"];
    [window addSubview:splashView];
    [window bringSubviewToFront:splashView];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:window cache:YES];
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
    splashView.alpha = 0.0;
    [UIView commitAnimations];

    // Play default movie if any
    //
    [viewController.glView playDefaultMovieIfAny];

    facebook = [[Facebook alloc] initWithAppId:@"105441111111111" andDelegate:self];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"]
        && [defaults objectForKey:@"FBExpirationDateKey"])
    {
        facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

    if (![facebook isSessionValid])
    {
        [facebook authorize:nil];
    }

}

- (void) logoutButtonClicked:(id)sender 
{
    [facebook logout];
}

- (void) fbDidLogout 
{
    // Remove saved authorization information if it exists
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"]) {
        [defaults removeObjectForKey:@"FBAccessTokenKey"];
        [defaults removeObjectForKey:@"FBExpirationDateKey"];
        [defaults synchronize];
    }
}

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Делай как это ...

[logoutButton addTarget:self action:@selector(logoutButtonClicked:)
           forControlEvents:UIControlEventTouchUpInside];

ИЛИ

- (void) logoutButtonClicked
{
    [facebook logout];
}
0 голосов
/ 13 июля 2012

Если вы хотите сохранить параметр (id) отправителя в функции logoutButtonClicked, функция выбора «logoutButtonClicked» должна иметь точку с запятой после него, как показано ниже:

[logoutButton addTarget:self action:@selector(logoutButtonClicked:)

Дополнительные сведения по этому вопросутему можно найти в документации Apple по селекторам: http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocSelectors.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...