【发布时间】:2012-06-01 21:48:02
【问题描述】:
我正在制作一个基本方法,它采用 Flickr 图片 URL 并返回图片的 ID。
我将方法传递给NSString @"http://farm6.staticflickr.com/5183/5629026092_c6762a118f"。
目标是返回 int:5629026092,它在图片的 URL 中,是图片的 ID。
这是我的方法:
-(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;
}
控制台的输出是:
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
为什么调用intValue会使实际号码变形?
【问题讨论】:
-
您可以使用 NSInteger 代替 int 来存储较大的数字。
标签: objective-c cocoa-touch nsstring integer