NSData dataWithContentsOfURL 在 iOS 8 中专门返回 nil
NSData dataWithContentsOfURL returning nil specifically in iOS 8
我正在尝试使用 [NSData dataWithContentsOfURL:]
从本地文件中获取 NSData
,但我得到的是 nil
,即使 [NSFileManager defaultManager]
返回的 fileSize
是一个正整数。
令人惊讶的是,当基本 sdk 从 iOS 7 增加到 iOS 8 时,我遇到了这个问题。
我不确定它是 iOS
错误还是它在 iOS 7
基础 SDK 中起作用而不是在 iOS 8
中起作用的原因,但这是我在浪费后找到的解决方案几个小时调试代码:-(
使用[NSData dataWithContentsOfFile:(NSString *)]
代替dataWithContentsOfURL
我的情况。它在 URL
中有一个 space
移除space
你确定你也通过了 Bundle 路径吗?
试试这个
NSString* path = [[NSBundle mainBundle].bundlePath stringByAppendingPathComponent:yourPath];
NSData* data = [NSData dataWithContentsOfURL:path];
NSData 和 URLs:有龙
+[NSData dataWithContentsOfURL:]
可以 return nil 出于多种原因。如果在尝试使用 URL 时出现任何问题,此方法将 return 为零。例如文件可能不存在,网络连接可能超时,或者 URL 甚至可能格式错误。 nil 被 returned 并且应用程序不知道为什么。
+ [NSData dataWithContentsOfURL:options:error:]
另一方面,会告诉调用者出了什么问题。当 nil 被 returned 时,error 参数将填充一个描述所发生问题的对象。使用此方法将直接回答 "why".
的问题
这两种方法都是同步方法,不鼓励将它们用于处理文件、网络资源,尤其是从网络资源提供的文件。这些方法将阻止调用者,并不是真正为这些用途而设计的。最好改用输入流或 NSURLSession。
可以参考enter link description here
我正在尝试使用 [NSData dataWithContentsOfURL:]
从本地文件中获取 NSData
,但我得到的是 nil
,即使 [NSFileManager defaultManager]
返回的 fileSize
是一个正整数。
令人惊讶的是,当基本 sdk 从 iOS 7 增加到 iOS 8 时,我遇到了这个问题。
我不确定它是 iOS
错误还是它在 iOS 7
基础 SDK 中起作用而不是在 iOS 8
中起作用的原因,但这是我在浪费后找到的解决方案几个小时调试代码:-(
使用[NSData dataWithContentsOfFile:(NSString *)]
代替dataWithContentsOfURL
我的情况。它在 URL
中有一个 space移除space
你确定你也通过了 Bundle 路径吗?
试试这个
NSString* path = [[NSBundle mainBundle].bundlePath stringByAppendingPathComponent:yourPath];
NSData* data = [NSData dataWithContentsOfURL:path];
NSData 和 URLs:有龙
+[NSData dataWithContentsOfURL:]
可以 return nil 出于多种原因。如果在尝试使用 URL 时出现任何问题,此方法将 return 为零。例如文件可能不存在,网络连接可能超时,或者 URL 甚至可能格式错误。 nil 被 returned 并且应用程序不知道为什么。
+ [NSData dataWithContentsOfURL:options:error:]
另一方面,会告诉调用者出了什么问题。当 nil 被 returned 时,error 参数将填充一个描述所发生问题的对象。使用此方法将直接回答 "why".
这两种方法都是同步方法,不鼓励将它们用于处理文件、网络资源,尤其是从网络资源提供的文件。这些方法将阻止调用者,并不是真正为这些用途而设计的。最好改用输入流或 NSURLSession。
可以参考enter link description here