我想使用NSData
从本地文件中获取[NSData dataWithContentsOfURL:]
,但即使nil
返回的fileSize
为正,我也会获得[NSFileManager defaultManager]
整数。
令人惊讶的是,当基本sdk从iOS 7增加到iOS 8时,我遇到了这个问题。
答案 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。
答案 3 :(得分:-1)
我的情况。它在URL中有一个空格
删除空格