簡體   English   中英

如何在Cloudkit上創建此數據/模型以在我的應用程序中顯示它?

[英]How do I create this data/model on Cloudkit to display it in my app?

對於Cloudkit來說還算是新手,所以我一直在弄清楚如何對數據建模。 下面,我給出了與我的模型相似的一小段代碼示例。

struct Street {
    var house: [Home]
}

struct Home {
    var people: [Person]
    var houseNumber: Int
}
struct Person {
    var firstName: String
    var lastName: String
    var age: Int
}

我想將此數據存儲在雲端,然后獲取要在我的應用程序上顯示的數據。 我不確定如何存儲數據。

我將如何存儲它以便所有數據鏈接在一起?

如果我有一個Street記錄,其中有一個名字字段,該如何將名字與該人的年齡聯系起來? 我需要存儲3個不同的記錄嗎? 如果是這樣,我將如何將記錄鏈接在一起?

我假設您必須使用引用,但是我不確定該怎么做。

我希望我能清楚地解釋我要做什么。

對於初學者,請查看Apple的CloudKit快速入門文檔 它將詳細介紹我要說的所有內容,強烈建議您閱讀。

就像您在代碼中建模的struct一樣,您將在名為CloudKit Dashboard的Web門戶中創建類似的對象。 在將iCloud權利正確添加到您的應用程序ID后,您將可以使用此Web門戶。

在邊欄中,您將看到“記錄類型”。 您可以在這里創建對象而無需任何代碼。 《快速入門指南》提供了有關如何創建對象(也稱為“記錄類型”)的詳細信息。 (該對象的一個​​實例稱為記錄。)基本上,您將需要創建與該對象的原始屬性相對應的字段,但通常不要編輯放置在記錄的name字段中的唯一標識符。 例如,您的Person記錄類型可能具有字段firstName (類型為String ), lastName (類型為String )和age(類型為Int )。

這樣,您的Home記錄類型可能會有一個houseNumber字段,類型為Int

CloudKit處理關系的方式與本地存儲解決方案(例如Core Data)略有不同。 出於效率方面的考慮,我們並不真正希望對象包含一組關聯的對象,例如,獲取一條Street需要先獲取每個House ID,然后獲取House中的每個Person ID。

因此,我們沒有在Street上放置House對象數組,而是在Street記錄類型上放置了類型Reference (到House )的字段。

因此,使用將在CloudKit儀表板中設置的這種新的記錄類型模型,然后可以在代碼中創建CKRecord對象並設置與字段對應的屬性。 通過CKRecord代表該house中的每個人的CKRecord上設置house屬性,可以告訴一個代表HouseCKRecord來完成。

例如,您可以使用CKQuery來獲取房屋,然后通過為所有“ People”對象創建CKQuery來獲取房屋的人,這些對象的記錄ID與其house參考字段中的房屋對象相對應。

請參閱《 CloudKit快速入門指南》中的添加參考字段

編輯 :在CloudKit儀表板中設置“引用”字段的值時,該值將是您引用的記錄的唯一ID名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM