@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 Отправлено из другого контекста актера, чем там, где была создана подписка, она будет сбой.
Что может быть причиной?>
[code]@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) } } [/code] [list] [*]The above code crashes in Swift 6, not Swift 5.
[*]Change @TestGlobalActor to @MainActor, it still crashes
[/list] Basically in Swift 6, If a Combine signal is Отправлено из другого контекста актера, чем там, где была создана подписка, она будет сбой. Что может быть причиной?>
Есть ли метод Kotlin, такой как Scala's Span, который объединяет Takehile и Dropwhile («Split»?), Но без дублированных усилий?
val foo = 111222111
val prefix = foo.takeWhile { it == '1' } // 111
val suffix = foo.dropWhile { it == '1' } // 222111...
Есть ли метод Kotlin, такой как Scala's Span, который объединяет Takehile и Dropwhile («Split»?), Но без дублированных усилий?
val foo = 111222111
val prefix = foo.takeWhile { it == '1' } // 111
val suffix = foo.dropWhile { it == '1' } // 222111...
Есть ли метод Kotlin, такой как Scala's Span, который объединяет Takehile и Dropwhile («Split»?), Но без дублированных усилий?
val foo = 111222111
val prefix = foo.takeWhile { it == '1' } // 111
val suffix = foo.dropWhile { it == '1' } // 222111...
Интерфейс Bublcobbarmanager был устарел в пользу интерфейса . Указанная причина снижения:
Вместо этого используйте буфер обмена, которая поддерживает функции приостановки. Можно ли предположить, что функции этого интерфейса (как предоставлены...
Интерфейс Bublcobbarmanager был устарел в пользу интерфейса . Указанная причина снижения:
Вместо этого используйте буфер обмена, которая поддерживает функции приостановки. Можно ли предположить, что функции этого интерфейса (как предоставлены...