我正在尝试创建一个显示来自服务器的事件信息的基本应用程序。
到目前为止,我下载了一个 xml 文件中的所有信息并使用 NSXMLParser 对其进行解析。
我创建了一个事件对象,它存储每个事件的所有信息,然后用这些事件填充 NSMutableArray。
然后,我想在每个 UITableView Cell 显示时异步加载与每个事件相关的图像,并将它们存储在位于 NSMutableArray 内的事件对象中的 NSData 中。这样我只会加载我需要的图像。
我的 NSMutableArray 的布局看起来像这样(简化):
events
-event1
-(NSString *)title
-(NSURL *)imageURL
-(NSData *)eventData
-event2
-(NSString *)title
-(NSURL *)imageURL
-(NSData *)eventData
etc..
我不知道这里的最佳做法是什么,并且正在努力使其发挥作用。
选项 1
我可以尝试直接从 MasterViewController 设置它,这对我来说似乎不正确,并且出现错误。如果我使用代码[[events objectAtIndex:cellIndexPath.row] eventImageData] = [[NSData alloc] initWithContentsOfURL:[[events objectAtIndex:cellIndexPath.row] eventImgURL]];
我得到错误:expression not assignable
- 选项 2
我可以在事件对象本身中编写一个方法来下载图像。我这样做了,并且在我的一生中无法让事件对象要求 MasterViewController 在完成获取图像后刷新适当的 NSTableViewCell 。
我的问题是,我的思路是否正确?我可以在 NSMutableArray 的对象内分配一个新的 NSData 吗?还是我在正确的轨道上要求事件对象下载它自己的图像?
感谢您花时间阅读这个冗长的问题。