按键值过滤 CKQuery

Posted

技术标签:

【中文标题】按键值过滤 CKQuery【英文标题】:Filter CKQuery by key value 【发布时间】:2014-07-21 13:52:05 【问题描述】:

我的场景: 我在公共数据库中有一个特定记录类型的记录列表。当有人按下按钮时,我只想显示“示例”键中包含值“1”的记录。知道如何在创建 CKRecords 数组时执行此操作吗?这就是我目前构建数组的方式:

- (void)queryCloudKit

    CKQuery *query = [[CKQuery alloc] initWithRecordType:@"NewArticle"
                                               predicate:[NSPredicate predicateWithValue:YES]];
    query.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"Date" ascending:NO]];

    [self.publicDatabase performQuery:query
                         inZoneWithID:nil
                         completionHandler:^(NSArray *results, NSError *error) 

        if (!error) 
            // CK convenience methods completion
            // arent executed on the callers thread.
            // more info: http://openradar.appspot.com/radar?id=5534800471392256
            @synchronized(self)
                self.results = [results mutableCopy];
                // make sure it executes on main thread
                dispatch_async(dispatch_get_main_queue(), ^
                    [self.collectionView reloadData];
                );
            
        
        else 
            NSLog(@"FETCH ERROR: %@", error);
        
    ];

谢谢!

【问题讨论】:

【参考方案1】:

你可以试试

CKQuery *query = [[CKQuery alloc] initWithRecordType:@"NewArticle" 谓词:[NSPredicate predicateWithFormat:@"Example == 1"]];

NSPredicate Programming Guide

【讨论】:

以上是关于按键值过滤 CKQuery的主要内容,如果未能解决你的问题,请参考以下文章

CKQuery 的 distanceToLocation 上没有 NSSortDescriptor?

python根据键值过滤字典列表

GraphQL 按键值过滤数据(例如,用户年龄必须为 31)

如何根据同一对象内给定的键值过滤对象

Laravel PHP通过多个键值过滤多维数组

Android 蓝牙键值适配(最通俗易通的一篇文章)