21

私はしばらくこれで立ち往生しており、これを回避していないようです。

URL から文字列として URL の内容を読み取ろうとしていますが、奇妙な結果が得られます

エラー -> エラー Domain=NSCocoaErrorDomain Code=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 ;
    }

私は何を間違っていますか?get as NSData も使用してみましたが、null が返されます。

4

7 に答える 7

16

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

「エラー -> エラー ドメイン = NSCocoaErrorDomain コード = 256」

エラー コードについては、Apple のドキュメントを確認してください。

Cocoa エラー ドメインの NSError コード。

NSFileReadUnknownError = 256,

NSFileReadUnknownError
「読み取りエラー、理由不明」

エラー定義が非常に役立つというわけではありません。:-)

また、 がエラーかどうかを判断するには、 をチェックせずerrornilの戻り値をチェックしますnil。実行が成功errorするとは限りません。nil

于 2012-04-11T13:24:22.960 に答える
13

デバイスにあるファイルにアクセスする際にも同様の問題がありました。私はNSURL isFileURL に従い、常に NO を返し、[NSURL URLWithString] の代わりに [NSURL fileURLWithPath] を使用しました - これはうまくいきました!

于 2015-07-09T02:14:26.047 に答える
3

SSL 証明書の有効期限が切れるとすぐに、このエラー (Error Domain=NSCocoaErrorDomain Code=256) が発生しました。それはあなたを助けないかもしれませんが、他の誰かを助けることができます.

于 2013-02-15T11:34:18.427 に答える
3

サンドボックス

アプリでサンドボックスを使用している場合は、com.apple.security.network.clientが に設定されていることを確認することをお勧めしますYES。Xcode 5 のターゲットの [全般] タブにあります

ネットワーク: 発信接続 (クライアント)

257また、URL に到達しようとしたときにコードが表示された場合、これもおそらくサンドボックスが原因であることに注意してください。file:///今回はむしろファイル アクセス部分です。「com.apple.security.files.user-selected.read-write」以外には開きたくなかったので

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

私はA Dead Simple Fileserverを使用http://localhost:3000し、デバッグ モードで使用することを好みました。

于 2013-12-10T11:32:53.747 に答える
2

この特定のエラーを引き起こしている可能性のあるその他の理由:

  1. サーバーで SSL が正しく構成されていない
  2. サーバーは http URL を https にリダイレクト (301) します (#1 を参照)。
  3. アプリ トランスポート セキュリティも、ブロックされた要求に対してこのコードを使用します。
于 2016-04-05T21:54:18.330 に答える
0

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

于 2015-09-11T23:20:59.850 に答える