这有点基础;我正在尝试检索iPhone应用程序的http数据。
我有www.myhost.com/test.html,内容为
<array><string>test</string><string>test2</string></array>
然后我
NSURL *baseURL = [NSURLRLWithString:@"http://www.myhost.com/test.html"];
NSArray *array = [NSArray arrayWithContentsOfURL:baseURL];
NSLog(@"%@", [array description]);
继续返回(null)。我错过了什么?谢谢!
答案 0 :(得分:5)
它应该是一个完整的plist格式(带有doctype和所有这些)
创建合适的plist的最简单方法是使用“Property List Editor.app”
侧注:NSLog(@"%@", [array description]);
与NSLog(@"%@", array);
答案 1 :(得分:5)
arrayWithContentsOfURL documentation明确指出
数组表示 由aURL标识的位置必须 仅包含属性列表对象 (NSString,NSData,NSArray或 NSDictionary对象)。
即,通过调用writeToURL:atomically方法获得的对象类型。此方法编写的位置可用于使用类方法arrayWithContentsOfURL:
或实例方法initWithContentsOfURL:
初始化新数组。因此,我建议使用这些标准方法从URL编写和读取数组,而不是编写自己的文件并尝试通过arrayWithContentsOfURL:
读取它。
答案 2 :(得分:0)
我做的另一个发现是,如果你想要动态构建列表,通过网络提供而不是来自你使用plist编辑器创建的静态文件,你必须转义字符串。如果文档中有任何xml错误,则无法加载数组。例如,我有一个&amp;在我的一些字符串中,并且仍然得到一个空数组,直到我转义字符串并替换&amp;与&