2012-04-11 9 views
16

私はしばらくこのことに悩まされており、これを回避していないようです。NSCocoaErrorDomain Code = 256

私はURLから文字列としてURLの内容を読み取るしようとしていますが、私は奇妙な

Error -> Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. (Cocoa error 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が返されます。

+5

URL部分に「http://」を追加してみてください。 – Eimantas

+0

が機能しました。ありがとう:) – Neelesh

答えて

14

はい、URLにスキーム「http://」がありません。

"エラー - >エラードメイン= NSCocoaErrorDomainコード= 256" エラーコードについては

Apple documentationをチェック:ココア・エラー・ドメイン内

NSErrorコード。

NSFileReadUnknownError = 256, 

NSFileReadUnknownError

は、エラーの定義は非常に有用であることを

ない "原因不明のエラーを読みます"。 :-)

また、errornilであるかどうかをチェックしてエラーがないかどうかを確認する場合は、戻り値をnilにチェックしてください。成功した場合、errornilであるとは限りません。

+0

あなたのメッセージをありがとう。しかし、私はもっと興味深いものを見つけました 私は次のコードを持っています。 NSURL * serverUrl = [NSURL URLWithString:@ "http://google.com"]; NSError * error = nil; NSString * stringFromStream = [NSString stringWithContentsOfURL:serverUrlエンコーディング:NSUTF8StringEncodingエラー:&エラー]; NSLog(@ "文字列は%@エラーは%@"、stringFromStream、エラーです。 私は、次のエラーしまっ 文字列(ヌル)の誤差があるされてエラードメイン= NSCocoaErrorDomainコード= 261のUserInfo = 0x6a36c60 {NSURL =のhttp「操作を完了できませんでした(ココアエラー261)。」://google.com 、NSStringEncoding = 4} – user454083

+0

このエラーを処理する方法 –

+0

エラーを生成するコードで質問してください。 – zaph

2

私たちのSSL証明書の有効期限が切れると、このエラーが発生しました(エラードメイン= NSCocoaErrorDomainコード= 256)。あなたを助けないかもしれないが、他人を助けることができる。アプリにサンドボックスを使用している場合

3

をサンドボックス化することは、あなたはcom.apple.security.network.clientYESに設定されているか確認する必要があります。それは

ネットワークの下でのXcode 5であなたの目標の一般タブにあります:送信接続(クライアント)も

あなたがコード257を見ればfile:/// URLにアクセスしようとするとことに注意してください、これはおそらくサンドボックス化のためですが、今回はむしろファイルアクセスの部分です。私は

ユーザーの選択したファイル

`com.apple.security.files.user-selected.read-書き込み」よりも何かにそれを開くためにしたくなかったので、私はA Dead Simple Fileserverと使用を使用することが好ましいですデバッグモードのときはhttp://localhost:3000です。

7

私のデバイスにあるファイルにも同様の問題がありました。私はNSURL isFileURL always returns NO を追跡し、[NSURL URLWithString]の代わりに[NSURL fileURLWithPath]を使用しました。これはうまくいきました!

+1

私はあなたを愛しています。ありがとう –

0

同じエラーが発生しました。上記の答えは完璧です。しかし私の場合は、URLに「http://」がありますが、リクエストに実際に応答している特定のポートでサービスが実行されているため、URLリクエストにポート番号を追加する必要がありました。この特定のエラーを引き起こしている可能性があります @"http://example.com:8084/yyy.zzz"

1

詳細な理由:

  1. SSLは、サーバーリダイレクト(301)のHTTP URLが
  2. (#1を参照)httpsにサーバー
  3. に誤って設定されApp transport securityは、ブロックされた要求に対してもこのコードを使用します。
関連する問題