Comment convertir NSInteger en type de données NSSsortingng?

Comment convertir NSInteger au type de données NSSsortingng ?

J’ai essayé ce qui suit, où month est un NSInteger :

  NSSsortingng *inStr = [NSSsortingng ssortingngWithFormat:@"%d", [month intValue]]; 

NSIntegers ne sont pas des objects, vous les transformez en long , afin de correspondre à la définition actuelle des architectures 64 bits:

NSSsortingng *inStr = [NSSsortingng ssortingngWithFormat: @"%ld", (long)month];

Chemin Obj-C =):

 NSSsortingng *inStr = [@(month) ssortingngValue]; 

Utilisation

objective c moderne objective c

Dites nous 12 votre NSInteger

 NSSsortingng *integerAsSsortingng = [@12 ssortingngValue]; 

ou plutôt

 NSInteger number = 12; NSSsortingng *integerAsSsortingng = [@(number) ssortingngValue]; 

Très simple. N’est-ce pas?

Si tu utilises

Swift

 var integerAsSsortingng = Ssortingng(integer) 

%zd fonctionne pour NSIntegers ( %tu pour NSUInteger) sans castings et sans avertissements sur les architectures 32 bits et 64 bits. Je ne sais pas pourquoi ce n’est pas la ” méthode recommandée “.

 NSSsortingng *ssortingng = [NSSsortingng ssortingngWithFormat:@"%zd", month]; 

Si vous êtes intéressé par pourquoi cela fonctionne, voyez cette question .

Un moyen facile de faire:

 NSInteger value = x; NSSsortingng *ssortingng = [@(value) ssortingngValue]; 

Ici, la @(value) convertit le NSInteger donné en un object NSNumber pour lequel vous pouvez appeler la fonction requirejse, ssortingngValue .

Lors de la compilation avec le support de arm64 , cela ne générera pas d’avertissement:

 [NSSsortingng ssortingngWithFormat:@"%lu", (unsigned long)myNSUInteger]; 

Vous pouvez également essayer:

 NSInteger month = 1; NSSsortingng *inStr = [NSSsortingng ssortingngWithFormat: @"%ld", month]; 

La réponse est donnée mais pensez que pour certaines situations, ce sera aussi un moyen intéressant d’obtenir de la chaîne de NSInteger

 NSInteger value = 12; NSSsortingng * ssortingng = [NSSsortingng ssortingngWithFormat:@"%0.0f", (float)value]; 

NSNumber peut être bon pour vous dans ce cas.

 NSSsortingng *inStr = [NSSsortingng ssortingngWithFormat:@"%d", [NSNumber numberWithInteger:[month intValue]]];