NSCocoaErrorDomain代码= 256

时间:2012-04-11 12:40:03

标签: iphone cocoa nsstring

我已经坚持了一段时间,似乎并没有解决这个问题。

我正在尝试从URL读取URL的内容作为字符串,但我得到一个奇怪的

  

错误 - >错误域= NSCocoaErrorDomain代码= 256“操作无法完成。(可可错误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 ;
    }

我做错了什么?我尝试使用获取作为NSData,但我得到null。

7 个答案:

答案 0 :(得分:15)

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

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

对于错误代码,请检查Apple documentation

Cocoa错误域中的NSError代码。

NSFileReadUnknownError = 256,

NSFileReadUnknownError
“阅读错误,原因未知”

并非错误定义非常有用。 : - )

另外,请勿检查error是否为nil以确定是否存在错误,请检查nil的返回值。 <{1}}不能保证成功执行error

答案 1 :(得分:8)

我在访问设备上的文件时遇到了类似的问题。我跟着NSURL isFileURL always returns NO 并使用[NSURL fileURLWithPath]而不是[NSURL URLWithString] - 这有效!

答案 2 :(得分:3)

沙盒

如果您在应用中使用沙盒,则可能需要检查 com.apple.security.network.client 是否设置为 YES 。它位于

下Xcode 5中Target的常规标签中

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

另请注意,如果您在尝试访问257网址时看到代码file:///,那也可能是因为沙盒,但这次是文件访问部分。因为我不想把它打开到“com.apple.security.files.user-selected.read-write”

之外的任何东西。

用户选择的文件

我更喜欢使用A Dead Simple Fileserver并在调试模式下使用http://localhost:3000

答案 3 :(得分:2)

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

答案 4 :(得分:2)

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

  1. 服务器上的SSL配置错误
  2. 服务器将http URL重定向(301)为https(参见#1)
  3. App transport security也会将此代码用于已阻止的请求。

答案 5 :(得分:0)

我得到了同样的错误。以上标记的答案是完美的。但在我的情况下,我在网址中有“http://”,但必须在网址请求中添加端口号,因为在特定端口上运行的服务实际上正在响应您的请求。     @"http://example.com:8084/yyy.zzz"

答案 6 :(得分:0)

我收到同样的错误,上面的解决方案对我没有用,在我的情况下,我在 UNNotificationServiceExtension 中调用 dataWithContentsOfURL ,所以我不得不使用app transport security条目更新 UNNotificationServiceExtension 的info.plist文件。