2016-01-04 107 views
1

我的應用程序解析是一個簡單的單詞列表共享應用程序。在CoreData中,擁有實體的擁有實體的實體Wordlists具有相關詞的實體。在一個屏幕中,我希望能夠通過按下按鈕將wordList及其相關單詞和所有者保存到Parse中。然後在另一個屏幕上,我希望能夠下載WordList及其相關單詞,然後將其保存到核心數據。在表中列出名單的名字。我的代碼是:如何保存相關的核心數據對象與SWIFT

// To save the wordList to Parse: 

@IBAction func shareWordList(sender: AnyObject) { 

    let parseWordList = PFObject(className: "WordList") 
    parseWordList.setObject("\(wordList?.listName)", forKey: "ListName") 
    parseWordList.setObject("\(wordList?.owner)", forKey: "Owner") 
    parseWordList.setObject("\(wordList?.words)", forKey: "Words") 
    parseWordList.setObject("\(wordList?.isSharedDate)", forKey:  "IsSharedDate") 
    parseWordList.setObject("\(wordList?.isShared)", forKey: "IsShared") 
    parseWordList.setObject("\(wordList?.createdDate)", forKey: "CreatedDate") 
    parseWordList.setObject("\(wordList?.isAppList)", forKey: "IsAppList") 

    parseWordList.saveInBackgroundWithBlock { (succeeded, error) -> Void in 
     if succeeded { 
      print("object uploaded") 
     } else { 
      print("Error: \(error) \(error?.userInfo)") 
     } 
    } 

這個上傳對大多數項目都可以,但與wordList相關的單詞和所有者不會保存。 enter image description here

是否有可能使用Parse使用關係屬性也是這樣嗎?那麼我怎樣才能將共享的wordList及其所有屬性從Parse返回到CoreData?

在此先感謝任何人一些幫助,這....

回答

1

此代碼"\(wordList?.words)"越來越的關係內容的可讀描述。這是受管對象的NSSet的日誌描述。這就是爲什麼你在分析數據存儲中基本上是亂碼的原因。

你真正想要做的是讓關係,然後要求每個項目的name。你可以用KVC來做到這一點。當你有這個可以直接存儲的字符串的。

可以說,這將是最好有在分析數據存儲多個不同類別中的核心數據模型相匹配的實體時。如果你這樣做,那麼你可以處理關係項目以在解析數據存儲中創建新對象,然後添加它們(一旦保存)來解析關係。

它也可以使用REST接口與像RestKit庫來解析從您的解析數據存儲內容映射直接進入核心數據。

+0

感謝Wain - 「你真正想要做的是獲得關係,然後詢問每個項目的名稱,你可以用KVC來做到這一點,當你有這個可以使用的字符串的NSSet,你可以使用直接存儲「 - 如何在代碼中執行此操作? ? – richc

+0

'單詞表.words.valueForKey( 「名稱」)' – Wain

+0

非常感謝北斗星 - 這樣做的。 parseWordList.setObject(「\(wordList?.words?.valueForKey(」wordName「))」,forKey:「Words」) – richc

相關問題