У меня есть EXC_BAD_ACCESS в этой строке:
self.accountControl.baseInfo = base
Когда я включил NSZombies, я получаю эту ошибку:
-[Выпуск CFString]: сообщение отправлено на освобожденный экземпляр 0x1478cbc0
Я узнал, что моя проблема здесь:
override func viewDidLoad() {
super.viewDidLoad()
if baseInfo == nil {
baseInfo = StorageManager.sharedInstance.getBaseInfo()
reloadBaseInfo(false)
}
Способ getBaseInfo()
в StorageManager:
func getBaseInfo() -> BaseInfo? {
if let baseInfoCD = getBaseInfoCD() {
var baseInfo = BaseInfo()
baseInfo.update(baseInfoCD)
return baseInfo
}
return nil
}
func getBaseInfoCD() -> BaseInfoCD? {
let fetchRequest = NSFetchRequest(entityName: "BaseInfoCD")
var error: NSError?
if let fetchResults = managedObjectContext.executeFetchRequest(fetchRequest, error: &error) as? [BaseInfoCD] {
if fetchResults.count > 0 {
return fetchResults.last!
}
}
return nil
}
Я думаю, что проблема связана с Core Data, и он освобождает объект, но я не знаю, что я делаю неправильно. Вот скрин из Zombie Instruments:
Что я делаю неправильно? Как я могу это исправить? Спасибо