수색…


비고

지원되는 유형

  • NSData
  • NSDate (날짜)
  • NSNumber (정수 / 이중)
  • NSString (문자열)
  • NSArray (배열)
  • CLLocation
  • CKReference
  • CKAsset

자세한 내용은

CloudKit 대시 보드

CloudKit과 함께 사용할 앱 등록하기

앱이 자격 부여 파일을 가져와 앱이 iCloud에 액세스하고 CloudKit을 사용하여 레코드를 작성할 수 있어야합니다.

다음 단계에 따라 앱에서 iCloud에 대한 액세스 권한을 부여하십시오.

1- Project Navigator에서 프로젝트를 선택한 다음 General 탭을 엽니 다.

2 - ID 섹션에서 개발자 Apple ID를 팀 드롭 다운 메뉴로 설정하십시오. (사용할 수 없다면 Xcode 메뉴 -> 환경 설정 -> 계정에 추가하십시오.

3- 프로젝트 속성의 Capabilities 탭으로 가서 iCloud를 켭니다. 그런 다음 "키 - 값 저장"및 "CloudKit"을 선택하십시오.

여기에 이미지 설명을 입력하십시오.

4- 항목이 선택되어 있는지 확인하십시오.

여기에 이미지 설명을 입력하십시오.

모든 항목을 선택하면 앱에서 CloudKit을 사용할 수 있습니다.

CloudKit 대시 보드 사용

CloudKit 관련 코드를 사용하여 생성 된 모든 레코드는 CloudKit 대시 보드에서 미리보고 편집하고 제거 할 수 있습니다. CloudKit 대시 보드에 액세스하려면 여기 로 이동 하십시오 .

대시 보드에는 여러 부분이 있습니다.

  • 레코드 유형 (나중에 설명 됨)
  • 보안 역할 (데이터베이스를 공개 또는 비공개로 설정할 수있는 곳)
  • 구독 유형 (App이 Apple Push Notification (APN) 에 등록되어 레코드가 변경 될 때 사용자에게 알릴 수 있음)

레코드 유형

여기에 앱의 모든 기존 레코드 유형 목록이 표시됩니다. 앱용 CloudKit Dashboard를 처음 열면 거기에 Users라고하는 레코드 유형이 있습니다.이 유형은 사용자가 사용할 수 있거나 삭제하고 직접 사용할 수 있습니다.

이 페이지에서 데이터를 수동으로 입력 할 수 있습니다. 물론 iOS SDK가 대시 보드보다 더 나은 방식으로 처리 할 수 ​​있기 때문에 대부분의 경우 이는 무의미합니다. 그러나 원하는 경우 기능도 있습니다. 이 페이지의 가장 많이 사용하는 것은 미리보기 형식입니다.

CloudKit에 데이터 저장

CloudKit에 날짜를 저장하려면 다음을 수행해야합니다.

  • CKRecordID (고유 레코드의 키)
  • CKRecord (데이터 포함)

레코드 키 만들기

모든 새 레코드 ID가 고유하도록하려면 고유 한 현재 시간 소인 을 사용합니다. NSDatetimeIntervalSinceReferenceDate() 메소드를 사용하여 타임 스탬프를 얻습니다. 그것은 ###의 형태입니다. ### (#은 숫자입니다.) 우리는 정수 부분을 사용할 것입니다. 이렇게하기 위해 문자열을 분할했습니다.

빠른

let timestamp = String(format: "%f", NSDate.timeIntervalSinceReferenceDate())
let timestampParts = timestamp.componentsSeparatedByString(".")
let recordID = CKRecordID(recordName: timestampParts[0])

기록 만들기

레코드를 만들려면 레코드 유형 (CloudKit 대시 보드 사용에서 설명 함)을 사용자로 지정해야합니다. ID는 지금 작성한 것으로 데이터와 데이터입니다. 여기에 샘플 텍스트, 그림 및 현재 날짜가 레코드에 추가됩니다.

빠른

let record = CKRecord(recordType: "Users", recordID: recordID)
record.setObject("Some Text", forKey: "text")
record.setObject(CKAsset(fileURL: someValidImageURL), forKey: "image")
record.setObject(NSDate(), forKey: "date")

목표 -C

CKRecord *record = [[CKRecord alloc] initWithRecordType: "Users" recordID: recordID];
[record setObject: "Some Text" forKey: "text"];
[record setObject: [CKAsset assetWithFileURL: someValidImageURL] forKey: "image"];
[record setObject: [[NSDate alloc] init] forKey: "date"];

노트

비고문에서 언급했듯이 이미지 형식은 CloudKit에서 직접 지원되지 않으므로 UIImageCKAsset 변환했기 때문에 UIImage 를 레코드에 직접 추가하지 않았습니다.

컨테이너 액세스

빠른

let container = CKContainer.defaultContainer()
let database = container.privateCloudDatabase // or container.publicCloudDatabase

레코드를 CloudKit 데이터베이스에 저장

빠른

database.saveRecord(record, completionHandler: { (_, error) -> Void in
    print(error ?? "")
})


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow