iOS 4.1中的NSCFNumber类是什么?

Jus*_*tin 22 iphone nsnumber ios

在iOS 4.1上成功从iPhone相机获取图片后,您可以使用该密钥

@"UIImagePickerControllerMediaMetadata"
Run Code Online (Sandbox Code Playgroud)

返回有关图片的信息.该词典中的一个关键是

@"Orientation"
Run Code Online (Sandbox Code Playgroud)

从我的实验来看,肖像和颠倒分别是6和8,景观是1和3.看看这段代码:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSDictionary *metaData = [info objectForKey:@"UIImagePickerControllerMediaMetadata"];
    id orientation = [metaData objectForKey:@"Orientation"];
    NSLog(@"Class: %@",[orientation class]);
Run Code Online (Sandbox Code Playgroud)

NSLog说"Class:NSCFNumber"

我需要比较这个对象的值来确定如何继续.横向是1或3,纵向是6或8.我不确定要键入方向或调用什么.NSNumber和NSInteger总是告诉我,我正在使用没有强制转换的指针制作整数.

谢谢你的时间!

Pet*_*ssi 35

这告诉你方向是一个实例NSNumber.从技术上讲,它NSCFNumber是一个私有子类NSNumber,但这是一个您不必担心的实现细节.要获取您将调用的整数值

[orientation integerValue]
Run Code Online (Sandbox Code Playgroud)

  • 我讨厌有人说"这是实施细节".这就像有人把"障碍"说"你不能再往前"了!如果有人想要更进一步,如果这不是特别有用,那该怎么办? (3认同)

Sha*_*rog 6

NSNumber是一个类集群.NSCFNumber是该集群中类的具体"私有"实现.只需使用返回的值就像NSNumber对象一样.