2011-09-25 3 views
5

Ho cercato di ottenere un codice di esempio interfacciato con un'interfaccia Cocoa (era stato scritto usando Carbon); tuttavia, quando ho tentato di sostituireCosa fa - [lunghezza NSURL]: selettore non riconosciuto inviato all'istanza 0x1001c0360 significa

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

con

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

ho cominciato ad avere queste eccezioni

2011-09-25 10: 27: 31,701 tester [1120: a0f] - [lunghezza NSURL]: non riconosciuta selettore inviato a un'istanza 0x1001c0360 2011-09-25 10: 27: 31,701 tester [1120: a0f] - [lunghezza NSURL]: selettore non riconosciuto inviato ad esempio 0x1001c0360.

Ho guardato diverse altre domande e risposte e in tutti quei casi il problema era legato a un NSURL essere passato quando un NSString ci si aspettava; tuttavia, non riesco a trovare dove/se lo sto facendo. Ho esaminato la documentazione e per quanto posso dire con la mia conoscenza estremamente limitata delle API di Apple. Non sto facendo niente di sbagliato.

Qualsiasi aiuto sarebbe molto apprezzato.

+0

Ci può mostrare la vostra dichiarazione e assegnazione del 'inFileName'? –

+0

Sarei felice, ma è un po 'complicato, È stato dichiarato qui CFStringRef FilePath = (CFStringRef) [oPanel URL]; – user963697

+0

Quel metodo '-URL' sembra sospetto come un metodo che restituisce un' NSURL/CFURLRef' invece di un 'NSString/CFStringRef'. Prova ad usare il valore di ritorno di quel metodo direttamente in 'ExtAudioFileCreateWithURL()' senza creare un altro URL. –

risposta

1

Il messaggio di errore è abbastanza chiaro. La classe NSURL non ha un metodo di istanza -length.

Hai cercato di creare l'oggetto NSURL con la sintassi Objective-C e gettarlo ai CFURLRef?

+7

Stavo avendo un problema simile. '[[UIImage alloc] initWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: myURLAsString]]];' può generare la stessa eccezione se l'URL utilizza lo schema di libreria di risorse. Qualcosa internamente sta provando un'invocazione di lunghezza sconsiderata, sembrerebbe. –

10

Può essere aiutare, ho avuto lo stesso problema

stavo cercando di fare UIImage da:

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

Poi il suo risolto con facendo stringa 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

Questo risolve il problema. Stavo impazzendoGrazie – Houman

+0

Questo problema risolto il problema si è arrestato da una stringa di URL perfettamente fine. –

0

ho avuto lo stesso problema mentre ricevo l'url da una stringa come [NSString stringWithFormat:@"%@Activity/GetBudget/%@",self.baseURL,activityID]

e ho risolto chiamando absoluteString

come questo

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