Ошибки сборки Swift 6 при мониторинге опубликованных значений актера в задачеIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Ошибки сборки Swift 6 при мониторинге опубликованных значений актера в задаче

Сообщение Anonymous »

Следующий код выдает ошибку при сборке языковой версии Swift 6 в Xcode. Это проблема архитектуры или ее легко исправить? Тип Bool доступен для отправки, а издатель — нет.

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

Non-sendable type 'Published.Publisher' in implicitly asynchronous access to actor-isolated property '$isRecording' cannot cross actor boundary

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

import Foundation

final class Recorder {

var writer = Writer()
var isRecording = false

func startRecording() {
Task { [writer] in
await writer.startRecording()
print("started recording")
}
}

func stopRecording() {
Task { [writer] in
await writer.stopRecording()
print("stopped recording")
}
}

func observeValues() {

Task {
for await value in await writer.$isRecording.values {
isRecording = value
}
}
}
}

actor Writer {
@Published private(set) public var isRecording = false

func startRecording() {
isRecording = true
}

func stopRecording() {
isRecording = false
}
}
На этом снимке экрана показаны реальные ошибки в примере кода AVCam, который я вижу (с единственной модификацией, заключающейся в добавлении @preconcurrency в импорт AVFoundation).
Изображение


Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-a-task
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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