iOS 4.1中的类NSCFNumber是什么?

kuhbmx9i  于 2022-12-15  发布在  iOS
关注(0)|答案(3)|浏览(228)

在iOS 4.1上从iPhone摄像头成功获取图片后,您可以使用密钥

@"UIImagePickerControllerMediaMetadata"

返回图片的信息。字典中的一个键是

@"Orientation"

根据我的实验,Portrait和Upside down分别为6和8,而Landscape分别为1和3。

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

NSLog显示“类:NSCF编号”
我需要比较此对象的值以确定如何继续。横向是1或3,纵向是6或8。我不确定键入orientation作为什么或调用它。NSNumber和NSNinteger总是告诉我从指针生成整数而不进行类型转换。
谢谢你的时间!

jxct1oxe

jxct1oxe1#

这就是说orientation是NSNumber的一个示例,从技术上讲,NSCFNumberNSNumber的一个私有子类,但这是一个实现细节,你不必担心。

[orientation integerValue]
1qczuiv0

1qczuiv02#

NSNumber是一个类簇。NSCFNumber是该簇中类的具体“私有”实现。只需像使用NSNumber对象一样使用返回值。

unftdfkk

unftdfkk3#

现在(2022年),该方法已经更改了名称,您需要将其强制转换为NSNumber才能使用,如下所示:

[((NSNumber *) orientation) intValue];

如果您想在OutputConsole上打印它,则需要使用%d而不是%@,例如:

NSLog (@"%d", [((NSNumber*)  orientation) intValue] );

相关问题