Подтвердить что ты не робот

Что такое класс NSCFNumber в iOS 4.1?

После успешного приобретения изображения с камеры iPhone на iOS 4.1 вы можете использовать клавишу

@"UIImagePickerControllerMediaMetadata"

чтобы вернуть информацию об изображении. Одним из ключей этого словаря является

@"Orientation"

Из моих экспериментов "Портрет" и "Верхняя сторона вниз" соответствуют 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 всегда говорят мне, что я делаю целые числа из указателей без приведения.

Спасибо за ваше время!

4b9b3361

Ответ 1

Это говорит вам, что ориентация - это пример NSNumber. Технически NSCFNumber является частным подклассом NSNumber, но это деталь реализации, о которой вам не о чем беспокоиться. Чтобы получить целочисленное значение, вы вызываете

[orientation integerValue]

Ответ 2

NSNumber - кластер классов. NSCFNumber представляет собой конкретную реализацию "private" класса в этом кластере. Просто используйте возвращаемое значение, как и объект NSNumber.