Sto sviluppando un'applicazione iOS 5.0+ con l'ultimo SDK.- [NSNull length]: selettore non riconosciuto inviato agli oggetti JSON
ottengo un errore molto strano con questo codice:
- (NSMutableURLRequest*)setupRequestWithService:(NSString*)service andMethod:(NSString*)method
{
NSString* url = [NSString stringWithFormat:@"%@%@.svc/%@", serverUrl, service, method];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
// Set authentication token.
NSLog(@"???????????? %@", authenticationToken);
if (authenticationToken == nil)
NSLog(@"NULL AUTHTOKEN");
if ([authenticationToken isEqual:[NSNull null]])
NSLog(@"NSNULL AUTHTOKEN");
if (request == nil)
NSLog(@"NULL REQUEST");
[request addValue:authenticationToken forHTTPHeaderField:REQUEST_HEADER_AUTH_TOKEN];
return request;
}
Questo è il mio registro:
???????????? <null>
NSNULL AUTHTOKEN
-[NSNull length]: unrecognized selector sent to instance 0x3b5a5090
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x3b5a5090'
Sembra che authenticationToken
è NULL
. Ma non lo capisco, se authenticationToken
è NULL
perché non vedo NULL AUTHTOKEN
nel registro.
Ho ricevuto questo errore la seconda volta che eseguo quel metodo, la prima volta, non ho alcun errore. Questo è il mio registro:
???????????? (null)
NULL AUTHTOKEN
A proposito:
NSString* authenticationToken;
Qualche consiglio?
forse c'è una qualche parte ... Memory Leak
è NSNullo, non è nulla. http://developer.apple.com/library/ios/#documentation/cocoa/reference/foundation/Classes/NSNull_Class/Reference/Reference.html – Kreiri
È necessario verificare con ([NSNull null] == authenticationToken) {NSLog (@ "NULL AUTHTOKEN");} – Amar
Sì, probabilmente l'autenticazione gothToken da JSON e aveva un valore null per quel valore, quindi un oggetto NSNull è ciò che ti viene dato. È possibile eseguire 'authenticationToken == [NSNull null]' per verificarlo, poiché nell'app c'è sempre esattamente un oggetto NSNull. –