繁体   English   中英

使用子类时如何更新解析记录

How to update parse records when using sub classes

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个parse.com后端。 我有一个Message类,它是PFObject的子类。 我将来自数据库的消息存储在一个数组message = Message中。

我在需要更新记录时遇到麻烦,因为我正在重复。

我一直想做的是从messages数组中获取一条消息,然后调用saveInBackgroundWithBlock ...,以为后端将知道它引用了数据库中的现有行。

我也遇到过fetchIfNeeded。

我的代码如下。 我要去哪里错了? 我应该如何更新存储在消息数组中的现有记录。 如果有的话,应该如何在我的场景中使用fetchIfNeeded? 还是应该以某种方式使用核心数据/本地存储? (困惑)

class Message : PFObject, PFSubclassing {
 var messageTitle : NSString
 var imageFile: PFFile   
}

func getMessages() {}
 var currentMessages = [Message]()
 var messageQuery = Message.query()
 messageQuery.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in
  for object in objects {
   var message = Message()
   message.messageTitle = object["messageTitle"] as String
   message.imageFile = object["imageFile"] as PFFile
   self.currentMessages.append(message)
  }
}

func updateMessage() {
 message.messageTitle = self.messageTitle.text
 let imageData = UIImagePNGRepresentation(self.imageToPost.image)
 let imageFile = PFFile(name: "image.png", data: imageData)
 message.imageFile = imageFile
 message.saveInBackgroundWithBlock({ (success: Bool!, error: NSError!) -> Void in
  if success == false {
   self.displayAlert("Something went wrong", error: "Please try again later")
  } else {
   self.navigationController?.popViewControllerAnimated(true)
  }
 })
}

func saveNewMessage() {
 message = Message()
 message.messageTitle = messageTitle.text
 let imageData = UIImagePNGRepresentation(self.imageToPost.image)
 let imageFile = PFFile(name: "image.png", data: imageData)
 message.imageFile = imageFile
 message.saveInBackgroundWithBlock({ (success: Bool!, error: NSError!) -> Void in
  if success == false {
   self.displayAlert("Something went wrong", error: "Please try again later")
  } else {
   self.navigationController?.popViewControllerAnimated(true)
  }
 })
}
1 个回复

看到此错误的原因是,您是在完成块中创建新的Message对象,而不是使用查询返回的对象。

func getMessages() {
    var currentMessages = [Message]()
    var messageQuery = Message.query()
    messageQuery.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in
        for object in objects {
            // This is now creating a new, unsaved "Message" object
            var message = Message()
            message.messageTitle = object["messageTitle"] as String
            message.imageFile = object["imageFile"] as PFFile
            self.currentMessages.append(message)
            // This might be a much easier way to do what you want:
            self.currentMessages = objects
        }
    }
}
2 使用javascript更新解析行

我正在尝试在单击按钮时更新我的​​解析表中的一行中的特定字段。 该按钮获取对象id,它设置一个带有对象id的警报,以确保我们获得正确的objectId,但更新行似乎不起作用。 有任何想法吗? ...

3 更新解析值

有没有一种方法可以更新解析时的数字,不仅可以通过替换它或创建一个新的对象ID,然后删除旧的对象ID,还可以通过从解析时存储的值实际增加值并将新值添加到其中来实现。 就是 解析时:正确= 5; 在应用上:正确= 10; 解析后的新值:15 这是我的代码,但是每次都会使用新值创建一个新 ...

4 更新解析列

我是新解析的,我的parse.com表上的得分列有一个名为User的问题。 这里有我的登录功能,用户登录成功后,我有这个功能,应该在用户播放时更新乐谱。 功能比较score与高分,如果得分是高于highscore更新highscore新值。 我在parse:updateObj ...

5 更新解析SDK时出现许多错误

我更新了Parse SDK 1.6.1,删除了Parse和ParseFacebookUtils框架,然后又添加了这两个框架和Bolts框架。 这导致了53个错误。 然后,我确保已经链接了此处接受的答案中指示的所有库: Apple Mach-O Linker Error Parse ,这使我下 ...

6 Laravel Mysql更新解析错误

$id是1 ,当我运行上面的代码时,我得到以下信息: UpdateUsers.php第83行中的FatalErrorException:解析错误 第83行是$user = DB::update('update users set name = '100' where id = ...

2015-09-17 22:32:48 2 58   php/ lumen
7 无法更新解析对象

我之前创建了一个对象,现在尝试在“编辑”屏幕中进行更新 该对象的ID是正确的(因为它在活动的早期正确查询了更新文本标签的时间。单击按钮时应保存此对象。) 从Parse Android开发人员指南中取消了此操作,但似乎没有用。 有什么建议么 ...

8 使用REST更新解析安装对象,并且仅具有deviceToken

当ios用户同意在其设备上接收推送通知时,我们会将deviceToken存储在后端数据库中。 我们想使用通道发送推送,但由于设备尚未实现,因此无法从设备本身更新安装对象。 我们最有可能需要做的事情,然后直接从应用程序本身处理所有订阅/取消订阅。 但是,当我们只有deviceToke ...

10 如何使用翻新解析JSONArray

我已经使用http://www.jsonschema2pojo.org/生成了POJO,现在我想解析以下形式的JSONResponse: 这是我不知道如何进行的地方: 这是我的模型课: 公共类MyList实现Parcelable { 这是我第一次尝试Retrofit ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM