【问题标题】:Parse: Updating array解析:更新数组
【发布时间】:2015-11-19 23:10:52
【问题描述】:

我正在尝试使用以下代码上传一个数组,但在倒数第二行出现错误,上面写着 Cannot assign to value: function call returns immutable array

for object in objects! {
  let newstring = NSString(format: ".0f", self.slider.value)
  var newarray = [object.objectForKey("times")]
  newarray.append(newstring)
  object.objectForKey("times") = newarray
  object.saveInBackground()
}

顺便说一下,“times”在parse中是数组类型。

【问题讨论】:

    标签: ios arrays swift parse-platform


    【解决方案1】:

    您应该使用setObject:forKey: 替换现有值,而不是请求数组并尝试设置它。

    object.setObject(newarray, forKey: "times")
    

    【讨论】:

    • 哦,好吧,把倒数第二行替换成那个
    • 只是为了澄清为什么你得到错误 object.objectForKey("times") 是一个函数调用,它返回键“times”处的值,是一个不可变数组。然后,您尝试为该不可变数组分配一个值。即使数组是可变的,也不会更新字典中数组的值。这就是为什么你需要像这个答案一样使用 setObject() 。
    【解决方案2】:

    我可以建议改用addObject:forKey: 方法吗?

    for object in objects! {
      let newstring = NSString(format: ".0f", self.slider.value)
      object.addObject(newstring, forKey: "times")
      object.saveInBackground()
    }
    

    它更干净,不需要检索:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 2012-10-11
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多