2

我想更好地了解 of 的initWithContentsOfURL功能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
  }

TIA。

4

1 回答 1

2

是的,你可以这么做。请记住,这[[NSDictionary alloc] initWithContentsOfURL:plist]是一个同步阻塞调用。如果你阻塞主线程太久,那么你会得到 0x8BADF00D,并且看门狗会杀死你的进程。

于 2011-11-01T16:19:17.953 回答