我正在尝试为iPhone的RSS阅读器解析多个网址。我已经设法创建了一个从单个URL中提取单元格的RSS源,但我希望我的表能够同时从多个URL中获取单元格。以下是我现在所做的不起作用......有人看到任何可能的解决方案/问题吗?
feeds = [[NSMutableArray alloc] initWithCapacity:1];
NSURL *url = [NSURL URLWithString:@"http://feed1"];
NSURL *url2 = [NSURL URLWithString:@"http://feed2"];
for(int i=0;i<5;i++)
[feeds addObject:[url absoluteString]]; // Convert NSURL to NSString
[feeds addObject:[url2 absoluteString]];
[[NSUserDefaults standardUserDefaults] setObject:url forKey:@"feeds"];
[[NSUserDefaults standardUserDefaults] setObject:url2 forKey:@"feeds"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSMutableArray *array = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"feeds"]];
for(NSString *urlString in array)
NSLog(@"%@",[NSURL URLWithString:urlString]); // Crete NSURL from NSString
parser = [[NSXMLParser alloc] initWithContentsOfURL:feeds];
答案 0 :(得分:1)
您只能在NSUserDefaults中为每个键设置一个值。 所以第二个调用会覆盖第一个调用 你可以尝试: [[NSUserDefaults standardUserDefaults] setObject:feeds forKey:@&#34; feeds&#34;];
代替: [[NSUserDefaults standardUserDefaults] setObject:url forKey:@&#34; feeds&#34;]; [[NSUserDefaults standardUserDefaults] setObject:url2 forKey:@&#34; feeds&#34;];
但无论如何使用NSUserDefaults传递数据并不是最好的策略
答案 1 :(得分:0)
for(int i=0;i<5;i++){
[feeds addObject:[url absoluteString]]; // Convert NSURL to NSString
}
[feeds addObject:[url2 absoluteString]];
相当于
for(int i=0;i<5;i++){
[feeds addObject:[url absoluteString]]; // Convert NSURL to NSString
[feeds addObject:[url2 absoluteString]];
}
你想要
parser = [[NSXMLParser alloc] initWithContentsOfURL:feeds];
Router.route('/profiles/:owner/pictures/:_id', function() {
var file = Files.findOne(this.params._id);
this.response.end(file.data);
}, {
name: 'profile.image',
where: 'server'
});
您不能简单地用NSURL对象数组替换NSURL对象。
为每个网址创建一个解析器。
正如Leonard所说:不要使用NSUserDefaults来传递数据。使用属性。