La conversion implicite perd entier précision: "long long" à "NSInteger' (aka 'int')
Je suis en train d'affecter une variable de type "long" pour un type NSUInteger, Quelle est la bonne façon de le faire?
ma ligne de code:
expectedSize = response.expectedContentLength > 0 ? response.expectedContentLength : 0;
où expectedSize
est de type NSUInteger et le type de retour de response.expectedContentLength
est de type 'long long
'. La variable response
est de type NSURLResponse
.
L'erreur de compilation est le suivant:
Sémantique Question: conversion Implicite perd entier précision: "long
long' à 'NSUInteger' (aka "unsigned int")
- Vous pouvez faire un cast explicite, ou avez-vous le savez et l'est de votre question au sujet de plus que le "comment"? Voici la ligne avec le cast explicite:
expectedSize = response.expectedContentLength > 0 ? (NSUInteger)response.expectedContentLength : 0;
Vous devez vous connecter pour publier un commentaire.
C'est vraiment juste un plâtre, avec une certaine plage de vérification:
< 0
case n'est pas correct. La valeur -1 signifie "pas d'attente qui peuvent être obtenus concernant le contenu de la longueur" (voir NSURLResponse.h)vous pouvez essayer de la conversion avec NSNumber: