【发布时间】:2017-01-13 11:26:27
【问题描述】:
我正在将消息保存到 coredata 中,当我离开控制器时它不会取消初始化。每次我展示一个带有该功能的新控制器时,它也会导致内存泄漏越来越大。
func saveMessagetoCoreData(text: String, timestamp: NSNumber, status: String, friend: Friend) {
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
let doubletimestamp = Double(timestamp)
let date = NSDate(timeIntervalSinceReferenceDate: (doubletimestamp))
createMessageWithText(text, friend: friend, context: moc, date: date, status: "...")
do {
try moc.save()
//moc.reset()
} catch let err {
print(err)
}
private func createMessageWithText(text: String, friend: Friend, context: NSManagedObjectContext, date: NSDate, isSender: Bool = false, status: String) -> Mesages {
let message = NSEntityDescription.insertNewObjectForEntityForName("Mesages", inManagedObjectContext: context) as! Mesages
message.user = friend
message.text = text
message.timestamp = date
message.isSender = isSender
message.status = status
message.fromID = NSUserDefaults.standardUserDefaults().objectForKey("FBid") as! String
friend.lastMessage = message
return message
}
当消息被保存到 coredata 中时,如果我关闭视图控制器,它将不再被调用 deinit。
有人知道发生了什么吗?
【问题讨论】:
标签: ios swift core-data memory-leaks nsfetchedresultscontroller