使用NSDictionary'initWithContentsOfURL'代替Reachability.h

时间:2011-11-01 16:14:53

标签: iphone ios nsdictionary initwithcontentsofurl

我想更好地了解initWithContentsOfURL NSDictionary的功能 此功能自行管理连接失败?
来自initWithContentsOfURL NSDictionary参考:

  

- (id)initWithContentsOfURL:(NSURL *)aURL

     
    

返回值

         
      

一个初始化的字典 - 可能与之不同       原始 - 包含aURL词典中的接收者,或者nil if       存在错误或资源的内容无效       字典的表示。

    
  

好的,但没有说明传递的网址是否有效。

但是,由于我确定我的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。

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。请注意,[[NSDictionary alloc] initWithContentsOfURL:plist]是同步阻止调用。如果你阻止主线程太长,那么你将获得0x8BADF00D,看门狗会杀死你的进程。