NSCocoaErrorDomain 代码=256

问题描述 投票:0回答:8

我已经被这个问题困扰了一段时间,似乎无法解决这个问题。

我试图从 URL 中将 URL 的内容作为字符串读取,但我得到了一个奇怪的结果

错误 -> 错误域 = NSCocoaErrorDomain 代码 = 256 “操作无法完成。(Cocoa 错误 256。)”

我的代码:

fetchedString = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"www.example.com/iphone"] encoding:NSUTF8StringEncoding error:&error];                                     
    NSLog(@"%@",fetchedString);

    // if there is something wrong with the URL 
    if (error) {
        NSLog(@"Error -> %@", error);
        return ;
    }

我做错了什么?我也尝试使用 gets as NSData ,但我得到了 null 。

iphone cocoa nsstring
8个回答
18
投票

是的,URL 缺少方案:“http://”。

“错误 -> 错误域=NSCocoaErrorDomain 代码=256”

有关错误代码,请检查 Apple 文档

Cocoa 错误域中的 NSError 代码。

NSFileReadUnknownError = 256,

NSFileReadUnknownError

“读取错误,原因未知”

错误定义并不是很有帮助。 :-)

也不检查

error
是否为
nil
来判断是否有错误,检查
nil
的返回值。
error
不保证成功执行后会
nil


14
投票

我在访问设备上的文件时遇到类似的问题。我遵循 NSURL isFileURL 总是返回 NO 并使用 [NSURL fileURLWithPath] 而不是 [NSURL URLWithString] - 这有效!


3
投票

我们的 ssl 证书过期后,我就收到此错误(错误域 = NSCocoaErrorDomain 代码 = 256)。这可能对你没有帮助,但可以帮助别人。


3
投票

沙盒

如果您在应用程序中使用沙箱,您可能需要检查

com.apple.security.network.client
是否设置为
YES
。它位于 Xcode 5 中 Target 的 General 选项卡下

网络:传出连接(客户端)

另请注意,如果您在尝试访问

257
url 时看到代码
file:///
,这也可能是因为沙箱,但这次是 文件访问 部分。因为我不想将其打开为“com.apple.security.files.user-selected.read-write”之外的任何内容

用户选择的文件

我更喜欢使用 A Dead Simple Fileserver 并在调试模式下使用

http://localhost:3000


2
投票

可能导致此特定错误的更多原因:

  1. 服务器上的 SSL 配置错误
  2. 服务器将 http URL 重定向 (301) 到 https(参见 #1)
  3. 应用程序传输安全也使用此代码来阻止请求。

0
投票

我遇到了同样的错误。上面标记的答案是完美的。但就我而言,我的 url 中有“http://”,但必须在 url 请求中添加端口号,因为有一个服务在特定端口上运行,该服务实际上正在响应您的请求。

@"http://example.com:8084/yyy.zzz"


0
投票

我遇到了同样的错误,上述解决方案对我不起作用,在我的情况下,我从 UNNotificationServiceExtension 中调用 dataWithContentsOfURL,所以我必须使用应用程序更新 UNNotificationServiceExtension 的 info.plist 文件运输安全条目。


0
投票

我遇到了错误,因为尽管在项目文件及其工作目录中引用了本地文件,但找不到本地文件。

基本上,我忘记检查它了

Target Membership

点击项目导航器(左窗格)内的文件时,请务必在 Xcode 的检查器(右窗格)中检查此项:

© www.soinside.com 2019 - 2024. All rights reserved.