2013-07-22 15 views
9

Nella mia app iOS sto cercando di aggiornare le informazioni dell'utente nel database (con Stackmob), ma continuo a ricevere "selettore non riconosciuto inviato all'istanza".iOS & Stackmob - [NSNull length]: selettore non riconosciuto inviato all'istanza

- (IBAction)save:(UIButton *)sender { 

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"User"]; 
NSPredicate *predicte = [NSPredicate predicateWithFormat:@"username == %@", self.username]; 
[fetchRequest setPredicate:predicte]; 

[self.managedObjectContext executeFetchRequest:fetchRequest onSuccess:^(NSArray *results) { 

    NSManagedObject *todoObject = [results objectAtIndex:0]; 
    [todoObject setValue:@"[email protected]" forKey:@"email"]; 

    [self.managedObjectContext saveOnSuccess:^{ 
     NSLog(@"You updated the todo object!"); 
    } onFailure:^(NSError *error) { 
     NSLog(@"There was an error! %@", error); 
    }]; 

} onFailure:^(NSError *error) { 

    NSLog(@"Error fetching: %@", error); 

}]; 
} 

Ecco l'errore completo sto ottenendo:

-[NSNull length]: unrecognized selector sent to instance 0x1ec5678 

2013-07-21 12:01:25.773 [29207:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[NSNull length]: unrecognized selector sent to instance 0x1ec5678' 

Grazie in anticipo.

+1

un po 'dove si ottiene il valore o l'oggetto Nil e si prova a impostare nil perché si è verificato questo errore. controlla befor setValue con it's zero o no. –

+0

possibile duplicato di [- \ [NSNull length \]: selettore non riconosciuto inviato a ... Una perdita di memoria?] (Http://stackoverflow.com/questions/16607960/nsnull-length-unrecognized-selector-sent-to- a-memory-leak) – borrrden

+0

Potresti stampare self.username e vedere cosa contiene? – satheeshwaran

risposta

42

Penso che potrebbe perché il tuo self.username è vuoto. Si noti che se si stanno ottenendo i dati nome utente da JSON, non è possibile utilizzare if(username){...} ma

if(![username isKindOfClass:[NSNull class]]) 

per evitare di dati vuoti perché l'interprete JSON genererà un oggetto NSNull.

+2

Anche se questa soluzione funziona ma ho trovato una soluzione migliore qui: http://stackoverflow.com/questions/16607960/nsnull-length-unrecognized-selector-sent-to-a-memory-leak/16610117 –

+0

@ पवन Mentre quello può funzionare in determinate circostanze, è una strategia piuttosto pericolosa da utilizzare in produzione. – dmur

+0

ma cosa c'entra JSON con questo? – user102008

Problemi correlati