Quickblox 自定义对象数组的 NSPredicate

Posted

技术标签:

【中文标题】Quickblox 自定义对象数组的 NSPredicate【英文标题】:NSPredicate for Array of Quickblox Custom Objects 【发布时间】:2015-10-16 07:55:10 【问题描述】:

我有一个NSMutableArray,其中包含大量 QuickBlox 自定义对象(QBCOCustomObject 类)。

当我的用户在文本字段中输入姓名信息时,我想过滤我的表格视图以根据他们的搜索显示结果。

这是我从自定义类中获取用户全名的方法...

for (QBCOCustomObject *object in self.userArray)  
    NSString *c = [object.fields[@"fullName"];
    NSLog (@"%@", c);

在下面的方法中,我正在尝试设置谓词,但我正在努力为谓词找到正确的格式。有人可以帮忙吗?

- (void)textFieldDidChange :(UITextField *)theTextField 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fullName CONTAINS[cd] %@)", self.searchBar.text];
    self.userArray = [[self.userArray filteredArrayUsingPredicate:predicate] mutableCopy];
    [self.tableView reloadData];


【问题讨论】:

试试fields.fullName CONTAINS[cd] %@ 【参考方案1】:

下面是工作示例:

NSMutableArray *initialArray = [NSMutableArray array];

QBCOCustomObject *object1 = [QBCOCustomObject customObject];
object1.fields = [@
    @"fullName": @"Igor",
    @"age": @(27)
 mutableCopy];
[initialArray addObject:object1];
//
QBCOCustomObject *object2 = [QBCOCustomObject customObject];
object2.fields = [@
                    @"fullName": @"Bob",
                    @"age": @(27)
                     mutableCopy];
[initialArray addObject:object2];
//
QBCOCustomObject *object3 = [QBCOCustomObject customObject];
object3.fields = [@
                    @"fullName": @"Igorio",
                    @"age": @(27)
                     mutableCopy];
[initialArray addObject:object3];

NSLog(@"initialArray: %@", initialArray);

NSPredicate *bPredicate = [NSPredicate predicateWithFormat:@"fields.fullName CONTAINS 'Igor'"];
NSArray *filteredArray = [initialArray filteredArrayUsingPredicate:bPredicate];

NSLog(@"filteredArray: %@", filteredArray);

它返回“Igor”和“Igorio”对象并跳过“Bob”

这是一个很好的关于 NSPredicate 的教程,里面有很好的例子:

http://nshipster.com/nspredicate/

【讨论】:

谢谢,还要感谢@Larme 对我的问题的评论,帮助我做对了

以上是关于Quickblox 自定义对象数组的 NSPredicate的主要内容,如果未能解决你的问题,请参考以下文章

QuickBlox 自定义对象权限

Quickblox:使用自定义对象登录 (Android)

Quickblox 内容与自定义对象文件

Quickblox:是不是可以删除用户创建的所有自定义对象

Quickblox颤振自定义对象更新不起作用

Quickblox:如何使用分页来使用 Web SDK 获取自定义对象