我正在开发一个应用程序,在桌面视图中显示来自多个网站的供稿,用户可以在其中添加其他供稿。
我使用ASIHTTPRequest基于以下tutorial创建了应用程序。
所以,我的问题是,在我添加新链接后,在刷新方法后,我从所有来源获得重复的帖子。
这是我的viewDidLoad方法:
- (void)viewDidLoad
{
[super viewDidLoad];
self.title =@"Lajmet";
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
self.allEntries = [NSMutableArray array];
self.queue = [[NSOperationQueue alloc] init];
self.feeds = [NSMutableArray arrayWithObjects:@"http://pcworld.al/feed",@"http://geek.com/feed", @"http://feeds.feedburner.com/Mobilecrunch",@"http://zeri.info/rss/rss-5.xml",
nil];
[self.tableView reloadData];
[self refresh];
}
刷新方法如下所示:
-(void)refresh
{
for (NSString *feed in _feeds)
{
NSURL *url = [NSURL URLWithString:feed];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[_queue addOperation:request];
}
}
在此screenshot中,您可以看到应用程序的外观以及添加屏幕如何适用于新来源。我配置了完成按钮,以便它自动添加一个Feed以测试它是否有效。
-(void)addSourcesViewController:(AddSourcesViewController *)controller didAddSource:(RSSEntry *)source
{
Source *newSource = [[Source alloc] init];
newSource.name = @"Test";
newSource.link = @"http://lajmeshqip.com/feed";
[self.feeds addObject:newSource.link];
NSLog(@"%@", self.feeds);
[self dismissViewControllerAnimated:YES completion:nil];
[self refresh];
}
所以我的问题是,在点击完成按钮后,所有条目都是重复的,它们会显示在tableview中。我尝试在最后一个方法中使用[self.tableView reloadData];
而不是[self refresh];
,但之后根本没有出现新链接。
有没有办法使用ASIHTTPRequest加载最后一个条目或我可以遵循的任何提示?我是新手,不知道应遵循哪种方法。任何帮助将不胜感激。
非常感谢!
花岗岩
答案 0 :(得分:0)
我假设cellRows是从self.allEntries创建的。因此,如果您向self.feeds添加新的Source,则在下载之前清理self.allEntries数组[self.allEntries removeAllObjects];
,因为在刷新方法中,您已经在重新加载所有提要。完成下载后,重新加载tableview数据。