Ссылается на захваченную переменную в одновременно выполняемом коде?IOS

Программируем под IOS
Ответить
Anonymous
 Ссылается на захваченную переменную в одновременно выполняемом коде?

Сообщение Anonymous »

У меня есть следующий код:

Код: Выделить всё

import SwiftUI
import Observation

struct ContentView: View {

@State var vm = ViewModel()

var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
}
.padding()
}

}

@Observable class ViewModel {

struct TestInfo {
var myId:Int
}

@MainActor var info:TestInfo?

func setupInfo() async {

var tmp:TestInfo?

await CoreData.shared.context.perform {

/// some core data work and then we set tmp
tmp = TestInfo(myId: ....)
}

await MainActor.run {
info = tmp /// ERROR: Reference to captured var 'tmp' in concurrently-executing code
}

}

}
Я хотел бы знать, как исправить эту ошибку. Я настраиваю tmp в закрытии контекста основных данных и хочу затем установить для info значение tmp.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ecute-code
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»