我正在搭便车并成功使用CloudKit保存照片,至少我认为我做了,因为我不知道用户友好的方式来检查我是否正确。我在场景中问这些用户制作了一些照片并使用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开发人员帐户中的成员才能访问。