遍历使用NSCoding iOS编码的所有对象

时间:2013-11-23 18:09:19

标签: ios objective-c

我有一个类(SpendrList),它具有NSMutableArray属性,该属性用作用户在使用应用程序时保存多个内容的列表(它是UITableView的数据源)。使用NSCoding协议,我根据需要对此类进行编码/解码。

这很好用,因为数组属性保存了我创建的类SpendrListItem(也遵守NSCopying协议)的列表项,并且当用户在UITableView中进行任何编辑时对其进行编码,像这样:

NSURL *dataFile = [FileSystemHelper pathForDocumentsFile:kFilePathList];
NSString *filePath = [dataFile path];
[NSKeyedArchiver archiveRootObject:_list toFile:filePath];

现在,我只处理一个列表,所以在NSCoding的一些教程之后,这个设置相对容易。现在,我想要做的是支持用户在我的应用中拥有多个列表的代码。

我在另一个ViewController设置中有一个集合视图,我想要显示创建的所有列表,我想知道我是否可以遍历应用程序沙箱中包含的所有已编码的对象

伪码:

for (encodedObject in App Sandbox){
  if([encodedObject isTypeOfClass: SpendrList]){
     //Add to iVar array to show in collection view 
  }
}

1 个答案:

答案 0 :(得分:0)

多个列表[隔离]

听起来像文件。具体来说,如果您有多个相对隔离的数据块,即使结构相同,您也应该单独管理和保留它们。可能您可能有一个主文档,可以跟踪其他文档的库存。

也就是说,将这些列表保存为单独的文件。

幸运的是,iOS拥有完整的基础设施来帮助您实现这一目标;见UIDocument