如何使用Parse.com对象?

时间:2015-01-12 09:47:44

标签: swift parse-platform

我试图在我的代码中引用parse.com变量。我不是100%肯定如何。我哪里错了?

当我这样做时:

message["title"] = messageTitle.text

我收到错误PFObject?没有名为subscript的成员

或者

messageTitle.text = self.message!.title

我收到错误PFObject没有名为' title'

的成员

或者

messageTitle.text = message["title"]

我收到错误AnyOject无法转换为String

给你一些背景知识:

我有一个带有Message表的解析后端。我像这样参考表格:

PFObject(className: "Message")

我有一个消息视图控制器,其中包含一个集合视图MessagesViewController.swift 我有一个集合视图单元类,用于在集合视图MessageCell.swift上显示消息 我有一个消息视图控制器,用于编辑消息MessageViewController.swift

我希望能够在MessagesViewController上选择一个单元格,然后MessageViewController将使用该单元格来显示所选的消息 我声明了本地消息变量:

var messages = [PFObject]()

长按:

let storyboard = self.storyboard
let vc = storyboard!.instantiateViewControllerWithIdentifier("MessageViewController") as MessageViewController
vc.message = self.messages[self.visibleCellIndex]
navigationController?.pushViewController(vc, animated: true)

消息viewController我声明它的局部变量并将textfield设置为等于消息的标题

var message = PFObject?()

override func viewDidLoad() {
 super.viewDidLoad()
 messageTitle.text = self.message.title
}

我还希望保存对邮件的任何更改,或者如果还没有新邮件则创建新邮件

func saveButtonPressed() {
 if message == nil {
  message = PFObject(className: "Message")
 }
 message["title"] = messageTitle.text
 message.saveInBackground()
}

然后我希望能够通过将其绑定到cellForRowAtIndexPath中的消息来创建消息单元

消息viewController

cell.bindWithMessage(messages[indexPath.row])

MessageCell

var message = PFObject()

func bindWithMessage(aMessage: PFObject) {
 message = aMessage
 messageTitle.text = message["title"]
}

2 个答案:

答案 0 :(得分:0)

根据错误消息,问题是该消息是可选的。所以

message?["title"] = messageTitle.text

应该有帮助。

<强>已更新

看一下消息声明:

var message = PFObject?()

它是一种光学吗?它是。你可以在其上使用语法message["title"] = messageTitle.text吗?你不能。你需要打开它。问题没有说明,他想要你的语法message.title,我无法读懂思想。

答案 1 :(得分:0)

声明var使用时:

var  myItem : PFObject!

然后当你去使用它时,你使用可选的绑定:

If let mySting = myItem["key"] as? String {
    label.text = myString
}