我有一个类(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
}
}
答案 0 :(得分:0)
多个列表[隔离] ?
听起来像文件。具体来说,如果您有多个相对隔离的数据块,即使结构相同,您也应该单独管理和保留它们。可能您可能有一个主文档,可以跟踪其他文档的库存。
也就是说,将这些列表保存为单独的文件。
幸运的是,iOS拥有完整的基础设施来帮助您实现这一目标;见UIDocument。