我看到了一些与此主题相关的帖子,但在这种情况下,对我来说没什么好用的。我正在使用Magical Records来存储数据。数据在第一次保存正常,因为我来自服务器之后映射它。
class func fnsConversationmapper(conversationJson: [JSON]) -> [Conversation] {
var conversationArray = [Conversation]()
for conversationDict in conversationJson {
print(conversationDict)
// let check = Conversation.mr_find(byAttribute: "id", withValue: conversationDict["id"].stringValue)
let check = Conversation.mr_findFirst(byAttribute: "id", withValue: conversationDict["id"].stringValue)
let conversationObj = Conversation.mr_createEntity()
conversationObj?.name = conversationDict["name"].stringValue
conversationObj?.id = conversationDict["id"].stringValue
conversationObj?.image = conversationDict["avatar"].stringValue
conversationObj?.type = conversationDict["type"].stringValue
conversationObj?.role = conversationDict["postedBy"]["role"]["name"].stringValue
conversationObj?.postedOn = (conversationDict["postedOn"].stringValue).dateFromString() as NSDate?
conversationArray.append(conversationObj!)
if check == nil {
NSManagedObjectContext.mr_default().mr_saveToPersistentStoreAndWait()
}
print("Saved data", Conversation.mr_findAll()!)
}
return conversationArray
}
我还有一个check
来查看该记录是否已经存在于db中,但不知何故,当我再次从某些场景运行应用程序时(在某些屏幕中来回),条目在db中加倍。我不明白这是怎么回事。任何帮助将不胜感激。
感谢。