2015-10-12 1 views
1

Я свяжусь и смог сохранить фотографию с помощью CloudKit, по крайней мере, я думаю, что сделал, потому что я не знаю удобного для пользователя способа проверить, прав ли я. Я задаю им в сценарии, что пользователи делают несколько фотографий, а фотографии сохраняются с помощью cloudKit, а затем он удаляет приложение, но теоретически он все равно должен иметь доступ к данным через какой-то интерфейс, предоставляемый apple, я прав ?Как получить доступ к сохраненным фотографиям в CloudKit?

А вот ядро, которое я использую:

- (void) saveToiCloudImageNamed: (NSString *)imageName andTimeCreated:(NSString *)timeCreated{ 

    CKContainer *container = [CKContainer defaultContainer]; 
    CKDatabase *privateDatabase = [container publicCloudDatabase]; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths firstObject]; 
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:imageName]; 
    NSURL *fileUrl = [[NSURL alloc] initFileURLWithPath:fullPath]; 

    CKAsset *photoAsset = [[CKAsset alloc] initWithFileURL:fileUrl]; 

    CKRecord *record = [[CKRecord alloc] initWithRecordType:@"Photo"]; 
    record[@"asset"] = photoAsset; 
    record[@"name"] = timeCreated; 

    [privateDatabase saveRecord:record 
       completionHandler:^(CKRecord *record, NSError *error) { 
        if (error==nil) { 
         NSLog(@"The save was successful"); 
         //Do something 
        }else{ 
         NSLog(@"Error saving with localizedDescription: %@", error.localizedDescription); 
         NSLog(@"CKErrorCode = %lu", (long)[error code]); 

         if ([error code]==CKErrorNetworkFailure) { 
          double retryAfterValue = [[error.userInfo valueForKey:CKErrorRetryAfterKey] doubleValue]; 
          NSLog(@"Error code network unavailable retrying after %f", retryAfterValue); 

          //                    NSTimer *timer = [NSTimer timerWithTimeInterval:retryAfterValue 
          //                              target:self 
          //                              selector:@selector(testOutCloudKit) 
          //                              userInfo:nil 
          //                              repeats:NO]; 
          //                    [timer fire]; 
         } 
        } 
       }]; 

} 
+0

ваша частная база данных подключается к публичной базе данных. –

ответ

1

На данный момент нет интерфейса для доступа к CloudKit, кроме того, что вы создаете сами данные. Возможно, вы захотите использовать документы iCloud.

При сохранении в общедоступной базе данных (как вы делаете в примере выше), вы можете получить доступ к данным с помощью панели CloudKit. Но это доступно только члену вашей учетной записи Apple.