我有以下代码从资源文件夹加载plist文件并使用它来填充tableview:
NSString *path = [[NSBundle mainBundle] pathForResource:@"AnimeDB" ofType:@"plist"];
NSMutableArray* tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
self.dataList1 = tmpArray;
[tmpArray release];
但我需要从网址加载此.plist文件。 我尝试了一些我在网上找到的解决方案,但我无法让它运行起来。 有人知道我该怎么办?
也许有一个简单的解决方案,但我刚开始使用xcode(这是我的第一个应用程序),所以我找不到它。
非常感谢任何帮助!
P.S。对不起我可能犯的任何错误,我的英语不太好。
答案 0 :(得分:5)
我建议使用Json。它允许您将类似结构化数据的plist从网址传递到您的应用。
NSData *dataReturn = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://someUrl.com/test.json"]];
if (dataReturn) {
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:dataReturn options:kNilOptions error:Nil];
如果你想使用你的plist,那就是几乎相同的代码:
// This will get the plist into data format
NSData *dataReturn = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://someUrl.com/test.plist"]];
// This will convert data format to array
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:dataReturn]
答案 1 :(得分:1)
最后,我设法使用这段简单的代码完成了我需要的工作:
NSMutableArray *tmpArray = [[NSMutableArray alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://zer0soft.altervista.org/AnimeDB.plist"]];
self.dataList1 = tmpArray;
它就像一个魅力!感谢所有花时间回答我的问题的人,特别感谢Jaybit!