iPhone 与 Twitter 实现收到 NSURLErrorDomain 错误
我已经在我的应用程序中实现了 MGTwitterEngine,它的工作近乎完美。
当我将 UIViewController 推送到 Twitter 表单所在的位置时,发生的第一个“奇怪”的事情是,我在控制台中收到此消息:
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;
}
I have implemented MGTwitterEngine in my application and it works near to perfect.
The first "weird" thing that happends when I push the UIViewController where the Twitter form is, I recieve this in the Console:
This app was previously authorized for a Twitter account so you can press the second button to send a tweet now.
Should I hide the login form or what is your recommendation?
The second "weird" thing that happends is when I the press the "Send tweet"-button it works and the message is posted on Twitter. But, I recieve an error message in the method:
- (void) twitterXAuthConnectionDidFailWithError: (NSError *)error;
And the error message is:
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.)"}
Which I find strange, because the twitter message is posted. But I recieve that error message anyway.
I have looked into the application settings in the Twitter control panel. The access type is "Read & Write".
Anyone familiar with this problem?
The delegate methods i've implemented are these:
#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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据 基础常量参考,
NSURLErrorDomain -1012 是 NSURLErrorUserCancelledAuthentication :
According to Foundation constants reference,
NSURLErrorDomain -1012 is
NSURLErrorUserCancelledAuthentication
: