NSData dataWithContentsOfURL在iOS 8中特别返回nil

时间:2015-06-11 00:15:48

标签: ios8 nsdata nsurl nsfilemanager

我想使用NSData从本地文件中获取[NSData dataWithContentsOfURL:],但即使nil返回的fileSize为正,我也会获得[NSFileManager defaultManager]整数。

令人惊讶的是,当基本sdk从iOS 7增加到iOS 8时,我遇到了这个问题。

4 个答案:

答案 0 :(得分:1)

我不确定它是iOS错误还是在iOS 7基础SDK而不是iOS 8中运行的错误,但这是我在浪费一对夫妇后找到的解决方案几小时调试代码:-(

使用[NSData dataWithContentsOfFile:(NSString *)]代替dataWithContentsOfURL

答案 1 :(得分:0)

你确定你也通过了Bundle路径吗?

试试这个

NSString* path = [[NSBundle mainBundle].bundlePath stringByAppendingPathComponent:yourPath];
NSData* data = [NSData dataWithContentsOfURL:path];

答案 2 :(得分:0)

NSData和网址:有龙

由于各种原因,

+[NSData dataWithContentsOfURL:]可以返回nil。如果在尝试使用该URL时出现任何问题,则此方法将返回nil。例如,文件可能不存在,网络连接可能超时,或者URL甚至可能格式不正确。返回nil并且应用程序不知道为什么。

另一方面,

+ [NSData dataWithContentsOfURL:options:error:]会告诉来电者出了什么问题。返回nil时,将使用描述发生问题的对象填充错误参数。使用这种方法将直接回答"为什么"。

的问题

这两种方法都是同步方法,不鼓励使用它们来处理文件,网络资源,尤其是从网络资源提供的文件。这些方法将阻止调用者,并不是真正用于这些用途。最好使用输入流或NSURLSession。

您可以参考enter link description here

答案 3 :(得分:-1)

我的情况。它在URL中有一个空格

删除空格