ios – 从核心数据实体获取属性值数组的有效方式是什么?

前端之家收集整理的这篇文章主要介绍了ios – 从核心数据实体获取属性值数组的有效方式是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑以下几点:
NSFetchRequest *request = [[NSFetchRequest Alloc] init];
request.entity = [NSEntityDescription entityWithName:@"Person" inContext:_MOC];
request.propertiesToFetch = [NSArray arrayWithObject:@"Name"];
NSError *error = nil;
NSArray *results = [_MOC executeFetchRequest:request error:&error];

这将返回一个Person对象数组.我想要的是这些对象的Person.name值数组.目前我走结果数组,提取名称并构建一个新的数组.有没有更清洁,更快的方式来做到这一点?我已经考虑将request.resultType更改为NSDictionaryResultType,但是不要太多购买,因为我仍然需要将字典数组转换为我需要的数组.

我已经有上面的解决方案,所以真的寻找一个更好的方法.如果正确的答案是“没有更好的方法”没关系,只要确定我没有丢失任何东西.谢谢!

编辑:在考虑这一点时,我质疑我需要一系列的值,而不是使用被管理对象的数组.在任何情况下,如果有一个在那里,仍然会感谢一个伟大的答案.

解决方法

请求NSDictionaryResultType,然后使用结果的字典数组,只需要求[array valueForKey:@“name”].当NSArray接收到-valueForKey时:它返回一个新的NSArray,它从调用-valueForKey的结果创建:在其所有元素上.

猜你在找的iOS相关文章