2015-02-05 9 views
0

모든 데이터를 읽기 위해 Cloud Kit의 개인 데이터베이스에서 레코드 유형의 모든 이름을 가진 배열을 얻는 방법을 알고 싶습니다.개인 데이터베이스에서 RecordType의 모든 이름을 얻는 방법 CloudKit

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

어떻게 :

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* 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"); 
        } 
       }]; 

:

는 내 데이터를 저장 나는 구원받은 후에 나의 기록을 모두 읽도록 Favoris1과 Favoris2가있는 배열을 가지고 있습니까?

답변

0

CloudKit 데이터베이스에서 사용 가능한 모든 recordType을 반환하는 함수가 없습니다. 동시에 여러 recordTypes를 쿼리 할 수도 없습니다. 2 개의 쿼리를 수행해야합니다. 당신이 할 수있는 일은 당신이 그런 것을 필요로한다면 결과 배열을 함께 결합하는 것입니다.

개체가 동일하기 때문에 방금 1 개의 recordType을 사용하고 사용자 지정 형식 (Favoris1 또는 Favoris2)을 지정하는 추가 필드를 추가하는 것이 좋습니다. 그러면 recordType을 쿼리하고 반환 된 필드를 볼 수 있습니다 그것은 어떤 사용자 지정 유형입니까?