Подтвердить что ты не робот

ToUIntMax() и toIntMax() удалены из Swift 4

Что заменило метод toUIntMax() и метод toIntMax() в Swift 4? Ошибка произошла в рамках FacebookCore.

Любая помощь будет оценена

4b9b3361

Ответ 1

Концепция IntMax полностью удалена как часть SE-104.

Преобразование из одного целочисленного типа в другое выполняется с использованием понятия "максимальное целое число ширины" (см. MaxInt), что является искусственным ограничением. Само существование MaxInt не дает понять, что делать, если кто-то реализует Int256, например.

Предлагаемая модель исключает концепцию "наибольшего целочисленного типа", ранее использовавшуюся для взаимодействия между целыми типами (см. toIntMax в текущей модели) и вместо этого обеспечивает доступ к машинным словам. Он также вводит методы multipliedFullWidth(by:), dividingFullWidth(_:) и quotientAndRemainder. Вместе эти изменения могут быть использованы для обеспечения эффективной реализации бонусов, которых было бы трудно достичь в противном случае.

В этом конкретном случае FB SDK должен просто использовать инициализатор UInt64($0), который теперь доступен для любого типа BinaryInteger благодаря новым протоколам.

Ответ 2

Вы также можете на данный момент выбрать Swift 3.2 в разделе Pods → Targets → ObjectMapper → версия версии Swift