2011-09-25 16 views
5

He intentado obtener un código de ejemplo interconectado con una interfaz Cocoa (se había escrito usando Carbon); Sin embargo, cuando intentó reemplazarQué hace - [longitud de NSURL]: selector no reconocido enviado a la instancia 0x1001c0360 significa

err = ExtAudioFileCreateNew(&inParentDirectory, inFileName, kAudioFileM4AType, inASBD, NULL, &fOutputAudioFile); 

con

err = ExtAudioFileCreateWithURL(CFURLCreateWithString(NULL,(CFStringRef)inFileName,NULL),kAudioFileM4AType,inASBD, NULL,kAudioFileFlags_EraseFile, &fOutputAudioFile); 

empecé a estas excepciones

2011-09-25 10: 27: 31.701 probador [1120: a0f] - [Longitud NSURL]: selector no reconocido enviado a la instancia 0x1001c0360 2011-09-25 10: 27: 31.701 probador [1120: a0f] - [longitud NSURL]: selector no reconocido enviado a la instancia 0x1001c0360.

He mirado en varias otras preguntas y respuestas y en todos esos casos, el problema se relaciona con un NSURL que se pasa cuando se esperaba un NSString; sin embargo, no puedo encontrar dónde/si estoy haciendo eso. He analizado la documentación y, por lo que puedo ver, con mi conocimiento extremadamente limitado de las API de Apple. No estoy haciendo nada mal.

Cualquier ayuda sería muy apreciada.

+0

¿Nos puede mostrar su declaración y asignación de 'inFileName'? –

+0

Me alegraría, pero es un poco complicado, se declara aquí CFStringRef FilePath = (CFStringRef) [oPanel URL]; – user963697

+0

Ese método '-URL' se parece sospechosamente a un método que devolvería un' NSURL/CFURLRef' en lugar de 'NSString/CFStringRef'. Intente utilizar el valor de retorno de ese método directamente en 'ExtAudioFileCreateWithURL()' sin crear otra URL. –

Respuesta

1

El mensaje de error es bastante claro. La clase NSURL no tiene un método de instancia -length.

¿Ha intentado crear el objeto NSURL con sintaxis Objective-C y lo fundió en CFURLRef?

+7

Estaba teniendo un problema similar. '[[UIImage alloc] initWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: myURLAsString]]]' puede arrojar la misma excepción si el URL usa el esquema assets-library. Algo internamente está probando una invocación de largo desaconsejable, al parecer. –

10

Puede ser que ayude, tuve el mismo problema

yo estaba tratando de hacer UIImage de:

[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]]]; 

Entonces es resuelto con al hacer cadena con [NSString stringWithFormat:]

NSString *urlStr =[NSString stringWithFormat:@"%@", [_photosURLs objectAtIndex:indexPath.row]]; 
NSURL *url = [NSURL URLWithString:urlStr]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
UIImage *image = [UIImage imageWithData:data]; 
+0

Esto resuelve el problema. Me estaba volviendo loco.Gracias – Houman

+0

Esto solucionó mi problema de bloqueo de una cadena de url perfectamente fina. –

0

que tenía el mismo problema al obtener url de cadena como [NSString stringWithFormat:@"%@Activity/GetBudget/%@",self.baseURL,activityID]

y yo lo resolvió llamando absoluteString

como esto

[[NSString stringWithFormat:@"%@Activity/GetBudget/%@",self.baseURL,activityID] absoluteString]

Cuestiones relacionadas