非常需要的建议,
我正在开发一个应用程序,我希望在本地临时存储数据,
目前,我已经创建了自己的类,填充该类并将数据放入NSMutableArray中。
示例:
ExampleClass *_exampleClass = [[ExampleClass alloc]init];
[_exampleClass setID: 1];
[_exampleClass setPara1: @"AAA"];
[_exampleClass setPara2: @"BBB"];
[_exampleClass setPara3: @"CCC"];
[List addObject: _exampleClass];
*List being a NSMutableArray在应用程序的其他地方,我会显示这个列表。
ExampleClass *_exampleClass = [List objectAtIndex:0];
_exampleClass.Para1.....唯一的问题是,在很多情况下,我必须过滤显示的内容,例如,显示Para1 != @"AAA“的列表。有了这个NSMutableArray会让它变得非常混乱,我只是想知道是否有更干净、更简单的方法?
谢谢
发布于 2014-08-25 05:30:44
您是否考虑过将核心数据与内存存储结合使用?从外观上看,您的查询足够复杂,值得开销。
发布于 2014-08-25 11:48:29
听起来你可以使用NSPredicate来过滤你的数组。您可以使用-[NSArray filteredArrayUsingPredicate:]从现有的数组中创建一个新的数组,并通过谓词进行过滤。您可以使用-[NSMutableArray filterUsingPredicate:]在适当的位置过滤可变数组,删除与谓词不匹配的对象。
如果使用数组控制器来帮助管理UI,则可以直接为filterPredicate属性赋值,让它们过滤所显示的内容。您还可以将该属性绑定到另一个控制器的属性。
表示示例的谓词(Para1 != @"AAA")非常简单:
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"Para1 != 'AAA'"];您还应该熟悉NSArray的各种...PassingTest:方法,比如-indexesOfObjectsPassingTest:。没有比这更简单或更强大的了。
https://stackoverflow.com/questions/25476480
复制相似问题