Ios8 在iOS 8中,NSData dataWithContentsOfURL返回nil

Ios8 在iOS 8中,NSData dataWithContentsOfURL返回nil,ios8,nsdata,nsurl,nsfilemanager,Ios8,Nsdata,Nsurl,Nsfilemanager,我试图使用[NSData dataWithContentsOfURL:从本地文件中获取NSData,但即使[NSFileManager defaultManager]返回的文件大小为正整数,我也会得到nil 令人惊讶的是,当基本sdk从iOS 7增加到iOS 8时,我遇到了这个问题 我不确定这是否是一个iOS错误,或者它在ios7base SDK中工作,而不是在ios8中工作,但我在花了几个小时调试代码后找到了一个解决方案:-( 使用[NSData dataWithContentsOfFile:

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


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

我不确定这是否是一个
iOS
错误,或者它在
ios7
base SDK中工作,而不是在
ios8
中工作,但我在花了几个小时调试代码后找到了一个解决方案:-(


使用
[NSData dataWithContentsOfFile:(NSString*)]
代替
dataWithContentsOfURL
我的案例。它在URL中有一个空格


删除空间

您确定也传递了捆绑路径吗

试试这个

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

NSData和URL:有龙

+[NSData DATA WITH CONTENTS OFURL:
可以出于多种原因返回nil。如果尝试使用该URL时出现任何错误,此方法将返回nil。例如,文件可能不存在,网络连接可能超时,甚至URL可能格式不正确。返回nil,而应用程序不知道原因

另一方面,
+[NSData dataWithContentsOfURL:options:error://code>将告诉调用者出了什么问题。返回nil时,错误参数将填充一个描述所发生问题的对象。使用此方法将直接回答“为什么”的问题

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


您可以引用

文件名是否为本地文件?根据手册页,此API可能失败。要检查失败原因,请使用以下API。
+(instancetype)dataWithContentsOfURL:(NSURL*)aURL选项:(NSDataReadingOptions)掩码错误:(NSError**)errorPtr
@hd1是的,该文件是本地的。@NulledPointer尝试过,但它没有给出任何调试信息