web-dev-qa-db-fra.com

toUIntMax () et toIntMax () supprimés de Swift 4

Qu'est-ce qui a remplacé la méthode toUIntMax () et la méthode toIntMax () dans Swift 4? L'erreur s'est produite dans le cadre FacebookCore.

Toute aide serait appréciée

22
techcoderx

Le concept de IntMax a été complètement supprimé dans le cadre de SE-104 .

La conversion d'un type entier à un autre est effectuée en utilisant le concept de 'largeur maximale' (voir MaxInt), qui est une limitation artificielle. L'existence même de MaxInt rend difficile de savoir quoi faire si quelqu'un implémente Int256, Par exemple.

Le modèle proposé élimine le concept de "type entier le plus grand" précédemment utilisé pour interopérer entre les types entiers (voir toIntMax dans le modèle actuel) et permet à la place d'accéder aux mots machine. Il présente également les méthodes multipliedFullWidth(by:), dividingFullWidth(_:) et quotientAndRemainder. Ensemble, ces changements peuvent être utilisés pour fournir une mise en œuvre efficace de bignums qui serait difficile à réaliser autrement.

Dans ce cas précis, le SDK FB devrait simplement utiliser l'initialiseur UInt64($0) qui est désormais disponible pour tout type BinaryInteger grâce aux nouveaux protocoles.

28
Sulthan

Vous pouvez également pour l'instant, sélectionner Swift 3.2 sous Pods -> Targets -> ObjectMapper -> Swift option de version linguistique)

2
Sushmita Sinha