2015-01-12 104 views
-1

我想在我的代碼中引用parse.com變量。我不是100%確定如何。我哪裏錯了?如何使用Parse.com對象?

當我這樣做:

message["title"] = messageTitle.text 

我得到的錯誤PFObject?沒有一個成員叫標

或者

messageTitle.text = self.message!.title 

我得到的錯誤PFObject沒有一個成員名爲「標題」

或者

messageTitle.text = message["title"] 

我得到的錯誤AnyOject不可轉換爲字符串

給你一些背景:

我有一個消息表的解析後端。我指的是表所示:

PFObject(className: "Message") 

我有一個消息查看控制器,其包括收集視圖MessagesViewController.swift 我有其用於在收集視圖MessageCell.swift 我顯示該消息的集合視圖細胞類用於編輯的消息MessageViewController.swift

我希望能夠選擇將在其上然後由MessageViewController被用於顯示所選擇的消息 我聲明本地消息變量MessagesViewController一個小區的消息視圖控制器:

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我宣佈它的局部變量,並設置文本框爲等於消息的標題

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"] 
} 
+0

難道你失望的選票嗎? 「如果有,那麼」是什麼意思? – grabury

+1

就像我在另一個人說的那樣。閱讀網站上的文檔。他們解釋所有這些和更多。在閱讀文檔之前在SO上發佈問題只是懶惰。 – Fogmeister

+0

@Fogmeister在文檔中,它展示瞭如何在Swift中定義子類屬性? – grabury

回答

0

創建郵件細胞根據錯誤信息,問題該消息是可選的。所以

message?["title"] = messageTitle.text 

應該有所幫助。

修訂

看看消息的聲明:

var message = PFObject?() 

它是一個optoinal?它是。你可以使用它的語法message["title"] = messageTitle.text嗎?你不能。你需要解開它。這個問題無處指出,他想給你的語法message.title,我無法讀懂頭腦。

+0

投票的原因是什麼? –

+0

解決方案是錯誤的,不會解決問題。看起來像一個非常有效的投票給我。 – Fogmeister

+0

您是否看到消息聲明?這是一個選擇。錯誤信息非常簡單。你可以參考一個屬性而不需要調整它,但是我承認,如果他想要一個像message.title這樣的語法,他確實需要對它進行子類化,但這不是問題所在。 –

0

聲明VAR使用時:

var myItem : PFObject! 

然後當你去使用它,您可以使用可選的綁定:

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