iPhone遇到Twitter实现收到NSURLErrorDomain错误

时间:2010-09-26 15:38:27

标签: iphone cocoa-touch mgtwitterengine

我已经在我的应用程序中实现了MGTwitterEngine,它接近完美。

当我推送Twitter形式的UIViewController时发生的第一个“怪异”的事情,我在控制台中接受了这个:

This app was previously authorized for a Twitter account so you can press the second button to send a tweet now.

我应该隐藏登录表单还是您的建议?

发生的第二个“怪异”的事情是,当我按下“发送推文”按钮时它起作用并且消息在Twitter上发布。 但是,我在方法中收到一条错误消息:

- (void) twitterXAuthConnectionDidFailWithError: (NSError *)error;

错误信息是:

Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0xde3edf0 {NSErrorFailingURLKey=https://api.twitter.com/oauth/access_token, NSErrorFailingURLStringKey=https://api.twitter.com/oauth/access_token, NSUnderlyingError=0xde430c0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)"}

我觉得很奇怪,因为发布了Twitter消息。但无论如何我收到了错误信息。

我已经查看了Twitter控制面板中的应用程序设置。访问类型“读取和写入”。

有谁熟悉这个问题?

我实施的委托方法是:

#pragma mark XAuthTwitterEngineDelegate methods

- (void) storeCachedTwitterXAuthAccessTokenString: (NSString *)tokenString forUsername:(NSString *)username
{
    NSLog(@"Access token string returned: %@", tokenString);

    [[NSUserDefaults standardUserDefaults] setObject:tokenString forKey:kCachedXAuthAccessTokenStringKey];

    // Enable the send tweet button.
    [loadingIndicator stopAnimating];
    self.sendTweetButton.enabled = YES;
}

- (NSString *) cachedTwitterXAuthAccessTokenStringForUsername: (NSString *)username;
{
    NSString *accessTokenString = [[NSUserDefaults standardUserDefaults] objectForKey:kCachedXAuthAccessTokenStringKey];

    NSLog(@"About to return access token string: %@", accessTokenString);

    return accessTokenString;
}


- (void) twitterXAuthConnectionDidFailWithError: (NSError *)error;
{
    NSLog(@"Error: %@", error);

    [loadingIndicator stopAnimating];
    self.sendTweetButton.enabled = TRUE;
}


#pragma mark -
#pragma mark MGTwitterEngineDelegate methods

- (void)requestSucceeded:(NSString *)connectionIdentifier
{
    UIAlertView *alert = [[UIAlertView alloc] 
                          initWithTitle:@"Sent!" 
                          message:@"The tweet is sent!" 
                          delegate:self 
                          cancelButtonTitle:nil 
                          otherButtonTitles:@"Okay", nil];
    [alert setTag:0];
    [alert show];
    [alert release];

    [loadingIndicator stopAnimating];
self.sendTweetButton.enabled = TRUE;

}

1 个答案:

答案 0 :(得分:3)

根据Foundation constants reference, NSURLErrorDomain -1012是NSURLErrorUserCancelledAuthentication

  

当用户取消身份验证的异步请求时返回。   这通常是通过单击用户名/密码对话框中的“取消”按钮而不是用户尝试进行身份验证而产生的。