Swift 6 только сочетает в себе аварий [дублировать]IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Swift 6 только сочетает в себе аварий [дублировать]

Сообщение Anonymous »

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

@globalActor
public struct TestGlobalActor {
public actor ActorType { }
public static let shared: ActorType = ActorType()
}

final class TestCrash: XCTestCase {
let subject = CurrentValueSubject(1)

@TestGlobalActor
func testCrash() async throws {
let cancellable = subject.sink { value in
print("\(value)")
}

performSelector(inBackground: #selector(triggerSubject), with: nil) // Crashes
//perform(#selector(triggerSubject), with: nil) // Does not crash

try await Task.sleep(nanoseconds: 1000000000)

_ = cancellable
}

@objc func triggerSubject() {
subject.send(2)
}
}
  • The above code crashes in Swift 6, not Swift 5.
  • Change @TestGlobalActor to @MainActor, it still crashes
Basically in Swift 6, If a Combine signal is Отправлено из другого контекста актера, чем там, где была создана подписка, она будет сбой.
Что может быть причиной?>

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

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

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

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

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

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

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