2012-06-21 56 views
0

我將twitter整合到我的應用程序中。我成功打開twitter頁面,但SA_OAuthTwitterEngine委託方法未被調用,下面是我的代碼。SA_OAuthTwitterEngineDelegate方法未被調用?

在Twitter按鈕點擊

-(void)twitterLogin 
{ 
    [self twitterLogout]; 
    if(!_engine) 
    { 
     _engine=[[[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate: self]autorelease]; 
     _engine.consumerKey=NSLocalizedString(@"consumerKey", nil); 
     _engine.consumerSecret=NSLocalizedString(@"consumerSecret", nil); 
    } 

    UIViewController *controller=[SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self]; 
    if (controller) 
    { 
     [self presentModalViewController:controller animated:YES]; 
    } 
} 

-(void)twitterLogout 
{  
    NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
    for (NSHTTPCookie* cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) { 
     [cookies deleteCookie:cookie]; 
    } 
    [_engine clearAccessToken]; 
    [_engine release]; 
    _engine=nil; 
} 

這種方法的工作完美,但下面的方法不叫

- (void) storeCachedTwitterOAuthData: (NSString *) data forUsername: (NSString *) username 
{ 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    [defaults setObject: data forKey: @"authData"]; 
    [defaults synchronize]; 
    NSLog(@"%@",username); 

} 

預先感謝您。

回答

-1

做這樣的事情

`if(!_engine){ 
     _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self]; 
     _engine.consumerKey = kOAuthConsumerKey; 
     _engine.consumerSecret = kOAuthConsumerSecret; 
    } 
    if(![_engine isAuthorized]){ 
     UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self]; 

    if (controller){ 
     [parent presentModalViewController: controller animated: YES]; 


     //hasTWLoggedInBefore=YES; 
    } 
} else{ 

    NSLog(@"IT IS ALRADY LOGIN"); 
    // Inform the delegate that Login is successful 
    if ([delegate respondsToSelector:@selector(TWloginStatus:)]) 
    { 
     // calling delegate method. For this method to function, the delegate should be implemented in the calling class. 
     [delegate TWloginStatus:YES];    
     return; 
    }  }` to load the twitter.