У меня есть ощущение, что Свифт Параллелизм снова борется со мной. Это действительно разочаровывает. < /P>
Моя проблема. Мне нужно создать издатель Combine для излучения состояния батареи на устройстве iOS. < /P>
Пока у меня есть: < /p>
extension Notification.Name {
var publisher: NotificationCenter.Publisher {
return NotificationCenter.default.publisher(for: self)
}
}
func createDefaultPublisher() -> AnyPublisher {
UIDevice.batteryLevelDidChangeNotification
.publisher
.compactMap { $0.object as? UIDevice }
.map { device in
Future { promise in
Task { @MainActor in
promise(.success(device.batteryLevel)) // Sending 'promise' risks causing data races
}
}
}
.switchToLatest()
.eraseToAnyPublisher()
}
< /code>
Так что сложная часть для меня - как реализовать оператор карты. Мне нужно переключиться на Mainactor, поэтому я использую будущее с обратным вызовом обещания. Проблема здесь: отправка рисков «Обещание», вызывая гонки данных. Поэтому мне интересно, как сделать это должным образом в Swift 6 в проекте, настроенная с полной строгой проверкой параллелизма
Подробнее здесь: https://stackoverflow.com/questions/797 ... -mainactor
Реализация оператора Combine Map, который считывает данные из Mainactor ⇐ IOS
Программируем под IOS
1755059389
Anonymous
У меня есть ощущение, что Свифт Параллелизм снова борется со мной. Это действительно разочаровывает. < /P>
Моя проблема. Мне нужно создать издатель Combine для излучения состояния батареи на устройстве iOS. < /P>
Пока у меня есть: < /p>
extension Notification.Name {
var publisher: NotificationCenter.Publisher {
return NotificationCenter.default.publisher(for: self)
}
}
func createDefaultPublisher() -> AnyPublisher {
UIDevice.batteryLevelDidChangeNotification
.publisher
.compactMap { $0.object as? UIDevice }
.map { device in
Future { promise in
Task { @MainActor in
promise(.success(device.batteryLevel)) // Sending 'promise' risks causing data races
}
}
}
.switchToLatest()
.eraseToAnyPublisher()
}
< /code>
Так что сложная часть для меня - как реализовать оператор карты. Мне нужно переключиться на Mainactor, поэтому я использую будущее с обратным вызовом обещания. Проблема здесь: отправка рисков «Обещание», вызывая гонки данных. Поэтому мне интересно, как сделать это должным образом в Swift 6 в проекте, настроенная с полной строгой проверкой параллелизма
Подробнее здесь: [url]https://stackoverflow.com/questions/79730137/implementing-combine-map-operator-that-read-data-from-mainactor[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия