我正在使用Kinvey作为后端开发应用程序。我有一个对象数组Questions,需要存储在由QnumberQanswer1Qanswer2属性组成的数据库中。我的问题是,当我尝试将此问题数组保存在数据库中时,它总是将数组中的最后一个对象保存n次。

假设我将这些数据存储在数组中:

Questions[0].Qnumber = 1
Questions[0].Qanswer1 = "a1"
Questions[0].Qanswer2 = "b1"

Questions[1].Qnumber = 2
Questions[1].Qanswer1 = "a2"
Questions[1].Qanswer2 = "b2"

Questions[2].Qnumber = 3
Questions[2].Qanswer1 = "a3"
Questions[2].Qanswer2 = "b3"


当我使用循环将这些对象保存在后端并检查数据库时,我得到:

Qnumber:3,3,3
Qanswer1:a3,a3,a3
Qanswer2:b3,b3,b3

我花了2天的时间来解决这个问题,但是我做不到
这是我的代码:

@IBAction func saveButton(sender: AnyObject) {

    let i = Int(numberOfQuestions)
    var newQ : Questions = Questions()
    for var index = 0; index < i; ++index {
        newQ.Qnumber = String(index + 1)
        newQ.Qanswer1 = cellAnswer1[index]
        newQ.Qanswer2 = cellAnswer2[index]
        saveObject(newQ)
    }
}

func saveObject (newQuestion: Questions){
    let store = KCSAppdataStore.storeWithOptions([
        KCSStoreKeyCollectionName : "Questions",
        KCSStoreKeyCollectionTemplateClass : Questions.self
        ])


    store.saveObject(
        newQuestion,
        withCompletionBlock: { (objectsOrNil: [AnyObject]!, errorOrNil: NSError!) -> Void in
            if errorOrNil != nil {
                NSLog("an error happened: %@", errorOrNil)
            } else {
                //save was successful
                NSLog("A new question is saved sucessfully")
            }
        },
        withProgressBlock: nil
    )
}

最佳答案

我认为您应该尝试将new的首字母放入for循环中

关于ios - 使用Swift将数据存储在后端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35395528/

10-11 14:50
查看更多