Что такое класс 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 всегда говорят мне, что я делаю целые числа из указателей без приведения.
Спасибо за ваше время!
Ответы
Ответ 1
Это говорит вам, что ориентация - это пример NSNumber
. Технически NSCFNumber
является частным подклассом NSNumber
, но это деталь реализации, о которой вам не о чем беспокоиться. Чтобы получить целочисленное значение, вы вызываете
[orientation integerValue]
Ответ 2
NSNumber
- кластер классов. NSCFNumber
представляет собой конкретную реализацию "private" класса в этом кластере. Просто используйте возвращаемое значение, как и объект NSNumber
.