Kir*_*odd 1 cocoa objective-c nspredicate ios
我确定已经问过这个问题,但我不知道该搜索什么.
我有一些Message对象,包含以下字段{selected[BOOL], messageText[STR]}
.我想过滤此数组以仅获取对象selected=TRUE
.到现在为止还挺好.
NSArray *messagesFiltered = [self.fetchedResultsController.fetchedObjects filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"selected == TRUE"]];
Run Code Online (Sandbox Code Playgroud)
但是,我不需要返回数组中的对象本身,我需要一个messageText
字符串数组.如何修改predicate
只返回messageText
字符串而不是整个对象?
Tim*_*Tim 11
这不是谓词的工作.谓词仅用于过滤而不是修改应用它们的数组.
但是,有一个有趣的小技巧:该方法-valueForKey:
将应用您想要的数组变换.只需使用messageText
您想要的密钥调用它:
NSArray *messagesFiltered = [self.fetchedResultsController.fetchedObjects filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"selected == TRUE"]];
NSArray *realMessages = [messagesFiltered valueForKey:@"messageText"];
Run Code Online (Sandbox Code Playgroud)
在数组中,-valueForKey:
向每个元素询问给定键的值,然后返回元素返回的所有内容的数组.(nil
为您传递的键返回的任何元素都会显示[NSNull null]
在结果数组中.)
归档时间: |
|
查看次数: |
1744 次 |
最近记录: |