Я пытаюсь связать NSManagedObject, который я только что создал из json, в другой файл NSManagedObject, который уже сохранен, но я не могу заставить его работать.Синхронизация основных данных в Swift
В принципе, моя функция выглядит так, когда мне нужно, чтобы отобразить детали:
func downloadDetails(){context context: NSManagedObjectContext, main:MainEntity, completion() -> Void {
// First, I'm getting the matching object in the right context
if let matchingMain = try context.existingObjectWithID(show.objectID) as? MainEntity {
// Then, i'm making a request for the details from my main object and
// looping inside the json response.
// Problem: main and matchingMain are wiped out from memory after
// the first iteration, and the loop throws an error when i try to make
fetchDetails()
for detailJSON in try detailsJSON.children() {
let detail = new DetailFromJson(detailJson)
// I get an error on the second item because matchingMain data
// is no longer here ("data: <fault>")
detail.main = matchingMain
}
saveContexts()
completion()
}
Я довольно новый для этого, так что может быть неправильным путем.
Но если кто-то может объяснить мне, как сохранить данные достаточно долго, чтобы правильно их установить, было бы здорово. Благодарю.
Когда вы задаете вопрос, где вы получаете сообщения об ошибках, вам действительно нужно включить эти сообщения об ошибках в вопрос. Обычно они включают в себя важные детали. –
Небольшой, воспроизводящий бит кода образца также прошел бы долгий путь. Что там имеет несколько синтаксических ошибок, которые делают невозможным знать, где находится проблема, тем более, что это звучит как проблема scope/async. –
ошибки не обязательно являются ошибками, но на самом деле невозможно посмотреть на ваш код и рассказать вам, что случилось, без дополнительной информации. я бы предположил, что ваш вызов получить соответствующий объект не происходит в очереди контекста. что могло бы объяснить освобождение (или, по крайней мере, оправдание того, что что-то странное происходит). – Ron