如何向 CloudKit 中的现有记录添加字段

Posted

技术标签:

【中文标题】如何向 CloudKit 中的现有记录添加字段【英文标题】:How to add fields to existing records in CloudKit 【发布时间】:2017-08-21 15:23:27 【问题描述】:

我有一个功能可以将用户名输入到 CloudKit 中的新记录名中(如下所示),但是我还需要将用户的“分数”添加到同一条记录中。

有没有办法通过引用其唯一的“recordName”值来插入另一个字段“usersScore”?

/// INSERT NEW ENTRY TO DB.
func insertName(nameEntry: String) -> CKRecordID 

    // Connects to the user database table.
    let userTable = CKRecord(recordType: "User")

    // Connects the Database to the public container.
    let publicData = CKContainer.default().publicCloudDatabase

    // Adds the users entry into the "name" field.
    userTable["name"] = nameEntry as NSString

    // If the record has saved or an error has occurred.
    publicData.save(userTable)  (record, error) in
        if let saveError = error 
            //Error.
            print("An error occurred in \(saveError)")
        else 
            // Success.
            print("Saved Record!")
        
    
    // RecordName (ID) of the current user.
    recordNameID = userTable.recordID
    return recordNameID!

【问题讨论】:

你说的是 CKReference 吗? 【参考方案1】:

要输入多条记录,最好使用CKModifyRecordsOperation。 我是这样做的...

func insertItems(nameEntry: String)  

    // Creates a record name based on name passed into function.
    let userNamesID = CKRecordID(recordName: "\(nameEntry)")

    // Inserts name into the User table.
    let userName = CKRecord.init(recordType: "User", recordID: userNamesID)

    // Adds the users entry into the "name" field along with score and the amount of questions answered.
    userName["Name"] = nameEntry as CKRecordValue
    userName["Score"] = questionsCorr as CKRecordValue
    userName["Questions_Answered"] = questionsAns as CKRecordValue

    // Insert all records into the database.
    publicDatabase.add(CKModifyRecordsOperation.init(recordsToSave: [userName], recordIDsToDelete: nil))


【讨论】:

以上是关于如何向 CloudKit 中的现有记录添加字段的主要内容,如果未能解决你的问题,请参考以下文章

将多个字段添加到 CloudKit 中的同一记录名称行

向 MongoDB 集合中的每个文档添加新字段

如何使用objective-c从CloudKit中的资产字段中检索图像

在 CloudKit 仪表板中创建布尔字段

使用 mongoose 通过 update 方法向 mongodb 中的现有文档添加新字段

使用 mongoose 通过 update 方法向 mongodb 中的现有文档添加新字段