Nsstring *stringURL = @"\\SERVER\FolDER\FolDER\FTP\ANC\ANC.pdf"; NSURL *url = [NSURL fileURLWithPath:stringURL];NSData *urlData = [NSData dataWithContentsOfURL:url];
但是urlData返回了nill
我已经尝试过datawithcontentsoffile但是在使用url变量时我收到了警告.
当我在windows中转到这个url文件://SERVER/FolDER/FolDER/FTP/ANC.pdf时,它会打开文件,但在mac上它不会.
我也尝试过以下方法:
Nsstring *stringURL = @"file://SERVER/FolDER/FolDER/FTP/ANC.pdf"; NSURLSession *session = [NSURLSession sharedSession];[[session dataTaskWithURL:[NSURL URLWithString:stringURL] completionHandler:^(NSData *data,NSURLResponse *response,NSError *error) { // handle response }] resume];// NSURL *url = [NSURL URLWithString:stringURL]; // NSData *urlData = [NSData dataWithContentsOfURL:url];
但是得到这些错误:
NSErrorFallingURLStringKeyNSErrorFallingURLKeyNSLocalizedDescriptionNSUnderlyingError
更新我能够获取url不返回nill具有以下内容:
NSURL *url = [NSURL fileURLWithPath:@"file:///server/FolDER/FolDER/FTP/ANC/ANC.pdf"];
但是,这会返回nill:
NSData *urlData = [NSData dataWithContentsOfURL:url];
我将错误添加到dataWithContentsofURL
它返回了这个:
connectionError NSError * domain: @"NSCocoaErrorDomain" - code: 260 0x166d8af0
我通过获取信息查看了有问题的文件,它开始像这样smb://server/folder/folder/ANC/ANC.pdf
解决方法 NSData和URL:有龙[NSData dataWithContentsOfURL:]可以出于多种原因返回nil.如果在尝试使用该URL时出现任何问题,则此方法将返回nil.例如,文件可能不存在,网络连接可能超时,或者URL甚至可能格式不正确.返回nil,应用程序不知道为什么.
[NSData dataWithContentsOfURL:options:error:]另一方面,会告诉调用者出了什么问题.返回nil时,将使用描述发生问题的对象填充错误参数.使用这种方法将直接回答“为什么”的问题.
这两者都是同步方法,并且不鼓励使用它们来处理文件,网络资源,尤其是从网络资源提供的文件.这些方法将阻止调用者,并不是真正用于这些用途.最好使用输入流或NSURLSession.
SMB不支持
从您的问题看,您似乎正在尝试访问SMB共享中存在的文件.不幸的是,iOS不支持SMB – 即使你有一个格式正确的smb URL(即smb://servername/sharename/filename.pdf),你也无法在不使用第三方SMB实现的情况下访问它.
但是,使用FTP代替SMB应该可行.
总结以上是内存溢出为你收集整理的ios – Objective-C dataWithContentsOfURL返回nill全部内容,希望文章能够帮你解决ios – Objective-C dataWithContentsOfURL返回nill所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)