3
我是CloudKit和iOS開發新手。我已經手動將一些記錄添加到CloudKit Dashboard中,現在我想通過自動創建的ID檢索它們。然後我想在一個靜態tableview單元格的UILabel中顯示記錄的值。有兩個問題:1)。從控制面板使用ID時,出現xCode錯誤(錯誤顯示爲「expected」,「separator」);和2)。我找不到任何將靜態tableview單元格中的UILabel記錄值的示例。 (特別是對於迅捷)。任何幫助是極大的讚賞!如何使用「fetchWithRecordID」在CloudKit儀表板中自動生成ID?
這裏是我的代碼:
override func viewDidLoad() {
super.viewDidLoad()
publicDB.fetchRecordWithID (f7080e7a-f8c3-4db6-b8ee-642a011a6762) { record, error in
if error != nil {
println("there was an error \(error)")
} else {
// this is my UILabel in a static tableview. The record's only attribute is //called "subCategory"
plasticOneValue.text = record["subCategory"]
}
}
}
更新:或者 - 我想這個代碼,並構建成功,但控制檯說,它有一個內部錯誤和的UILabel還是空白......任何建議在我做錯了上面的代碼或這段代碼?
override func viewDidLoad() {
super.viewDidLoad()
// I created a new CKRecord ID Object and provided the existing ID in dashboard and //it fixed the error about requiring a "," separator
var plasticOneID = CKRecordID(recordName: "f7080e7a-f8c3-4db6-b8ee-642a011a6762")
publicDB.fetchRecordWithID (plasticOneID) { record, error in
if error != nil {
println("there was an error \(error)")
} else {
self.plasticOne.text = (record.objectForKey("subCategory") as String)
}
}
}
當我嘗試你的代碼,我仍然得到這個錯誤,所以我必須做別的事情錯了 - 「有一個錯誤」 我也有這樣的代碼 - '進口的UIKit 進口CloudKit 讓myContainer中:CKContainer = CKContainer.defaultContainer() 讓publicDB:CKDatabase = myContainer.publicCloudDatabase 讓privateDB:CKDatabase = myContainer.privateCloudDatabase class TableViewController:UITableViewController { @IBOutlet weak var plasticOne:UILabel! @IBOutlet weak var plasticTwo:UILabel! @IBOutlet弱var plasticThree:UILabel!' @EdwinVermeer –
2014-12-03 21:45:34
感謝關於隊列的額外信息。我還在學習。每次我在UI中獲取,保存或更新數據時,是否需要調用該NSOperationQueue.mainQueue?我會在什麼情況下使用後臺隊列?在此先感謝您的幫助! – 2014-12-03 21:48:28
所有回調塊總是在單獨的隊列上調用。如果你操縱用戶界面,那麼你需要在主隊列上這樣做。您確定帶有該ID的記錄是否在您的公共數據庫中?錯誤代碼2005很奇怪。您的設備上使用的是與開發者帳戶相同的iCloud帳戶嗎?也許那個RecordID在私人數據庫中,你在查詢publicDB? – 2014-12-04 06:50:36