22

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

@"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 显示“类:NSCFNumber”

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

谢谢你的时间!

4

2 回答 2

36

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

[orientation integerValue]
于 2010-12-05T02:47:58.567 回答
6

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

于 2010-12-05T02:48:55.633 回答