iCloud之获取记录

来源:互联网 发布:java switch语句 编辑:程序博客网 时间:2024/04/19 02:17

Fetching Records

在您的记录保存到数据库中,可以使用不同的机制检索它们。取创纪录的ID,或查询个人记录使用谓词多条记录。 (谓语定义了用于搜索记录的逻辑条件)。通常,你提取部分记录,显示以推出的用户,然后订阅变化感兴趣的用户。


如果您使用位置字段类型,还可以提取记录的地理区域内,如在Fetch Records by Location.

Fetch Records by Identifier

如果你知道你想获取记录的记录ID,那么你可以通过单独的记录ID获取。例如,下面的代码段取了一个名为115的记录。

CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];
CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"115"];
[publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord *artworkRecord, NSError *error) {
   if (error) {
      // Error handling for failed fetch from public database
   }
   else {
      // Display the fetched record
   }
}];

Fetch and Modify Records

获取和修改记录

您可以获取,修改和保存更改您对个别记录。这段代码获取Artwork纪录,改变它的日期字段的值,并将其保存到数据库中.

// Fetch the record from the database
CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];
CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@"115"];
[publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord *artworkRecord, NSError *error) {
   if (error) {
      // Error handling for failed fetch from public database
   }
   else {
      // Modify the record and save it to the database
      NSDate *date = artworkRecord[@"date"];
      artworkRecord[@"date"] = [date dateByAddingTimeInterval:30.0 * 60.0];
      [publicDatabase saveRecord:artworkRecord completionHandler:^(CKRecord *savedRecord, NSError *saveError) {
         // Error handling for failed save to public database
      }];
   }
}];

Query for Records Using Predicates

查询记录使用谓词

如果你有很多记录,保存在iCloud的大文件,这是不可能的,你想要的所有记录在本地存储设备上。相反,你获取使用查询数据的一个切片。查询结合了记录类型,谓词和排序描述符时,其谓语包含的索引字段。您建立使用 CKQuery对象代码的查询。


例如,下面的代码段获取所有的艺术品,具有指定标题。

CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title = %@", @"Santa Cruz Mountains"];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Artwork" predicate:predicate];
[publicDatabase performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) {
    if (error) {
        // Error handling for failed fetch from public database
    }
    else {
        // Display the fetched records
    }
}];

在画廊的应用程序,具有指定标题的作品被取出。

../Art/5_fetching_by_attribute_2x.png

概括


在本章中,您学习了如何:


获取由标识符记录
获取,修改和保存个人记录
获取使用查询和谓语多条记录















































0 0
原创粉丝点击