2011-04-13 76 views
1

更新:将Dropbox SDK设置为使用HTTP而不是HTTPS可以在iPhone 3G上解决此问题。我还没有使用iPhone 4或iPad上的SDK,所以我不确定结果。设备上的iOS Dropbox SDK无法使用NSURLErrorDomain登录

在iOS上使用Dropbox SDK会产生以下结果:在模拟器中,我可以使用提供的登录表单类正确链接我的帐户。修改构建设置到设备,我得到这个方法在DBLoginController.m

- (void)restClient:(DBRestClient*)client loginFailedWithError:(NSError*)error { 
    [self setWorking:NO]; 
    NSString* message; 
    if ([error.domain isEqual:NSURLErrorDomain]) { 
     message = @"There was an error connecting to Dropbox."; 
    } else { 
     //... 

引发错误alertView登录表单显示像这样,在所包含的样本项目中引用:

-(void)settingsPressed { 
if (![[DBSession sharedSession] isLinked]) { 
     DBLoginController* controller = [[DBLoginController new] autorelease]; 
     controller.delegate = self; 
     [controller presentFromController:self]; 
    } else { 
     [[DBSession sharedSession] unlink]; 
     [[[[UIAlertView alloc] 
      initWithTitle:@"Account Unlinked!" message:@"Your dropbox account has been unlinked" 
      delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] 
      autorelease] 
     show]; 
     [self updateButtons]; 
    } 

} 

我不知道该怎么做。 Apple文档提示NSURLErrorDomain被定义为NSURL加载系统错误。任何人都可以阐明这一点吗?

回答

1

你应该看看什么是error.code或更好[error localizedDescription]

NSURLErrorDomain广阔错误域:使用NSError的错误代码“域”之间的区别

常量,作为来自不同子系统或源的错误代码的鉴别器

NSURLErrorDomain中的错误可能几乎任何东西,连接关闭,代理,证书错误...在apple documentation page中搜索NSURLError

+0

我禁用了Dropbox SDK中的HTTPS,它在iPhone 3G上正常工作。我还没有测试过我的iPhone 4,但 – Justin 2011-04-16 01:57:33

+0

'[[errors localizedDescription]''可能会给你这个解释,避免一些猴子测试....;) – 2011-04-16 12:49:50

+0

它没有。尽管我接受了你的答案! – Justin 2011-04-16 14:06:02