Je faisais une méthode de base qui prend une URL d'image Flickr et renvoie l'ID de l'image. Je passe la méthode NSString
@"http://farm6.staticflickr.com/5183/5629026092_c6762a118f"
.NSString intValue déformer nombre réel
L'objectif est de renvoyer l'int: 5629026092
, qui se trouve dans l'URL de l'image et est l'ID de l'image.
Voici ma méthode:
-(int)getImageIDFromFlickrURL:(NSString *)imageURL{
NSArray *objectsInURLArray = [imageURL componentsSeparatedByString:@"/"];
NSString *lastObjectInFlickrArray = [objectsInURLArray lastObject];
NSArray *dirtyFlickrIdArray = [lastObjectInFlickrArray componentsSeparatedByString:@"_"];
NSString *flickIDString = [dirtyFlickrIdArray objectAtIndex:0];
NSLog(@"flickr id string: %@",flickIDString);
int flickrID = [flickIDString intValue];
NSLog(@"id: %i",flickrID);
return flickrID;
}
La sortie de la console est:
2012-05-26 13:30:25.771 TestApp[1744:f803] flickr id string: 5629026092
2012-05-26 13:30:25.773 TestApp[1744:f803] id: 2147483647
Pourquoi appeler intValue
déformant le nombre réel?
double possible de [Conversion chaîne en int en Objective C changer la valeur] (http://stackoverflow.com/questions/10606281/ converting-string-to-int-in-objective-c-change-the-value) –
Vous pouvez utiliser NSInteger au lieu de int pour stocker le plus grand nombre. – lnafziger