Я сохраняю сообщения в coredata, и когда я покидаю контроллер, он не ослабевает. Это также вызывает утечку памяти, которая становится все больше и больше каждый раз, когда я представляю новый контроллер с функцией внутри.Утечка памяти Coredata: Deinit не вызван .. вызывает утечку памяти
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, если я уволить ViewController, это Deinit не дозвонились больше.
У кого-нибудь есть идея, что происходит?
привет, как вы их освобождаете? – slimboy
Кроме того, что вы подразумеваете под тем, что держит ссылку на ваш viecontroller, если я правильно понимаю, предыдущий контроллер имеет ссылку на него для передачи информации о пользователях следующему контроллеру – slimboy
, кстати, это происходит только тогда, когда я отправляю сообщение – slimboy