2

initWithContentsOfURLof ofの機能をよりよく理解したいと思いNSDictionaryます。
この機能は、接続の失敗を単独で管理しますか? 参照
からinitWithContentsOfURLNSDictionary

- (id)initWithContentsOfURL:(NSURL *)aURL

戻り値

URL ディクショナリの受信者を含む初期化されたディクショナリ (元のディクショナリとは異なる可能性があります)。エラーがある場合、またはリソースの内容がディクショナリの無効な表現である場合は nil です。

わかりましたが、渡された URL が有効かどうかは指定されていません。

しかし、私plistは適切にフォーマットされていると確信しているので、問題のメソッドを使用して、接続が利用可能かどうかを確認することができますReachability.h. もちろん、データ接続が利用可能かどうかを理解するだけであり、アクティブな接続の種類 (WiFi など) を理解する必要はありません。機内モードでこのような簡単なテストを行うと、[dict count];常に 0 が返されるためです。

NSURL * plist = [NSURL URLWithString: @ "http://www.example.com/example.plist"];
NSDictionary * dict = [[[NSDictionary alloc] initWithContentsOfURL:plist] autorelease];
  if ([dict count] == 0) {
      //no connection
  }

ティア。

4

1 に答える 1

2

はい、できます。[[NSDictionary alloc] initWithContentsOfURL:plist]これは同期ブロッキング呼び出しであることに注意してください。メイン スレッドをブロックしすぎると、0x8BADF00D が返され、ウォッチ ドッグがプロセスを強制終了します。

于 2011-11-01T16:19:17.953 に答える