0

すべてのデータを読み取るために、Cloud Kit のプライベート データベースですべてのレコード タイプの名前を持つ配列を取得する方法を知りたいですか?

私は自分のデータを保存します:

CKRecord* fav1 = [[CKRecord alloc] initWithRecordType:@"Favoris1"];

[fav1 setObject:@"Favoris 1 name"forKey:@"name"];
[fav1 setObject:@"2003 year"forKey:@"year"];

[self.privateDatabase saveRecord:fav1
               completionHandler:^(CKRecord *savedState, NSError *error) {
                   if (error) {
                       NSLog(@"ERROR SAVING: %@", error);

                   }
                   else{
                       NSLog(@"SAVE OK");
                   }
               }];

私は自分のデータを読みました:

CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Favoris1" predicate:[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]];
[self.privateDatabase performQuery:query
                      inZoneWithID:nil
                 completionHandler:^(NSArray *results, NSError *error)
 {
     if (!error)
     {
         NSLog(@"results query %@", results);
         NSLog(@"--> %@",[[results objectAtIndex:0] objectForKey:@"name"]);
         NSLog(@"--> %@",[[results objectAtIndex:0] objectForKey:@"year"]);
     }

     else
     {
         NSLog(@"FETCH ERROR: %@", error);
     }
 }];

次のような別のプロパティで別のレコードを保存したいと思います。

CKRecord* fav2 = [[CKRecord alloc] initWithRecordType:@"Favoris2"];
[fav2 setObject:@"Favoris 2 name"forKey:@"name"];
[fav2 setObject:@"2005 year"forKey:@"year"];

保存した後にすべてのレコードを読み取るために Favoris1 と Favoris2 を含む配列を作成するにはどうすればよいですか?

4

1 に答える 1

0

CloudKit には、データベースから利用可能なすべての recordType を返す関数はありません。また、複数の recordType を同時に照会することもできません。2 つのクエリを実行する必要があります。そのようなものが必要な場合は、結果の配列を結合することができます。

オブジェクトは同じなので、1 つの recordType だけを使用し、カスタム タイプ (Favoris1 または Favoris2) を指定する追加のフィールドを追加した方がよいでしょう。は。

于 2015-02-07T10:10:14.417 に答える