Я получаю прерывистую ошибку, которая очень сложно отлаживать.EXC_BAD_ACCESS (code = 1, address = 0x10) on Core Data Fetch
Я получаю следующее сообщение об ошибке из следующего метода
EXC_BAD_ACCESS (код = 1, адрес = 0x10) на Core Data Fetch
class func getAll(context: NSManagedObjectContext) -> [Tag] {
var returnValue: [Tag] = []
do {
let fetchRequest = NSFetchRequest(entityName: Tag.entityName())
returnValue = try context.executeFetchRequest(fetchRequest) as! [Tag]
} catch {
}
return returnValue
}
Буга является extermely прерывистый, и происходит только на каждых нескольких 100 сеансах, но появляется достаточно часто, что мне нужно иметь дело с ним. Кодовые разрывы на линии returnvalue = try context.execute...
- С отладкой, мой
fetchRequest
неnil
- моего
context
неnil
- ReturnValue имеет значение по умолчанию пустого массива
- моего backgroundContext работает на background thread
Я включил NSZombieFlag, чтобы попытаться выяснить, освобождена ли какая-либо память здесь, а затем доступ, но я в тупик о том, что вызывает это. Любые идеи или понимание были бы высоко оценены.
В улове заявлении вы должны распечатать ошибки, которые могут направлять вас в правильном направлении. Не могли бы вы сделать это, а затем поместить сообщение об ошибке в свой вопрос? Кроме того, я могу ошибаться, но я уверен, что NSFetchRequest требует, чтобы вы предоставили NSSortDescriptor. – Jonathan
Блокировка никогда не будет достигнута, если она будет достигнута, авария не произойдет. Я добавил оператор ошибки в блок catch, но он так и не дошел до него. Блокировка блокирует, чтобы предотвратить ошибку выборки данных ядра, а не плохую ошибку доступа. – Unome
Что касается дескриптора сортировки. Его определенно нет. В документации Apple «Значение nil рассматривается как дескрипторы сортировки», и это значение по умолчанию, если вы его не предоставили. – Unome