web-dev-qa-db-ja.com

iOS 4.1のクラスNSCFNumberとは何ですか?

IOS 4.1のiPhoneカメラから画像を正常に取得した後、キーを使用できます

@"UIImagePickerControllerMediaMetadata"

写真に関する情報を返します。その辞書の鍵の1つは

@"Orientation"

私の実験から、PortraitとUpside downはそれぞれ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]);

NSLogには「クラス:NSCFNumber」と記載されています

このオブジェクトの値を比較して、続行する方法を決定する必要があります。横向きは1または3、縦向きは6または8です。向きを何と入力するか、何を呼び出すかがわかりません。 NSNumberとNSIntegerは常に、キャストなしでポインターから整数を作成していることを示しています。

御時間ありがとうございます!

22
Justin

これは、オリエンテーションがNSNumberのインスタンスであることを示しています。技術的には、NSCFNumberNSNumberのプライベートサブクラスですが、これは実装の詳細であり、心配する必要はありません。呼び出す整数値を取得するには

[orientation integerValue]
35
Pete Rossi

NSNumberはクラスクラスターです。 NSCFNumberは、そのクラスター内のクラスの具体的な「プライベート」実装です。 NSNumberオブジェクトと同じように戻り値を使用してください。

6
Shaggy Frog