iphone - ¿Cuál es la clase NSCFNumber en iOS 4.1?
nsnumber (2)
Esto le indica que la orientación es una instancia de NSNumber
. Técnicamente, NSCFNumber
es una subclase privada de NSNumber
, pero ese es un detalle de implementación del que no tiene que preocuparse. Para obtener el valor entero al que llamarías
[orientation integerValue]
Después de adquirir con éxito una imagen de la cámara del iPhone en iOS 4.1, puede usar la tecla
@"UIImagePickerControllerMediaMetadata"
Para devolver información sobre la imagen. Una de las claves en ese diccionario es
@"Orientation"
Desde mi experimentación, Vertical y Al revés son 6 y 8 respectivamente, y los paisajes son 1 y 3. Mira este código:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSDictionary *metaData = [info objectForKey:@"UIImagePickerControllerMediaMetadata"];
id orientation = [metaData objectForKey:@"Orientation"];
NSLog(@"Class: %@",[orientation class]);
El NSLog dice "Clase: NSCFNumber"
Necesito comparar el valor de este objeto para determinar cómo proceder. El paisaje es 1 o 3, el retrato es 6 u 8. No estoy seguro de cómo escribir la orientación o de qué llamar. NSNumber y NSInteger siempre me dicen que estoy haciendo enteros a partir de punteros sin conversiones.
¡Gracias por tu tiempo!
NSNumber
es un grupo de clases. NSCFNumber
es una implementación concreta, "privada" de una clase en ese grupo. Simplemente use el valor devuelto como lo haría con un objeto NSNumber
.