2016-01-04 46 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

相关问题