2013-07-22 10 views
9

In meiner iOS App versuche ich Benutzerinformationen in der Datenbank zu aktualisieren (mit Stackmob), aber ich bekomme immer "unerkannter Selektor an Instanz gesendet".iOS & Stackmob - [NSNull Länge]: unerkannter Selektor an Instanz gesendet

- (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); 

}]; 
} 

Hier ist der vollständige Fehler Ich erhalte:

-[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' 

Vielen Dank im Voraus.

+1

einige, wo Sie bekommen Nil Wert oder Objekt und Sie versuchen, Null, dass, warum Sie diesen Fehler haben. Überprüfen Sie vor setValue mit es ist Nil oder nicht. –

+0

mögliches Duplikat von [- \ [NSNull length \]: nicht erkannter Selektor gesendet an ... Ein Speicherleck?] (Http://stackoverflow.com/questions/16607960/nsnull-length-unrecognized-selector-sent-to-to- a-memory-leak) – borrrden

+0

Könnten Sie self.username ausdrucken und sehen, was es enthält? – satheeshwaran

Antwort

42

Ich denke es kann, weil Ihr self.username leer ist. Beachten Sie, dass, wenn Sie die Benutzerdaten von json bekommen, kann man nicht if(username){...} aber

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

zu leere Daten zu vermeiden, weil das json-Interpreter ein NSNull Objekt erzeugen kann.

+2

Obwohl diese Lösung funktioniert, aber ich habe eine bessere Lösung hier gefunden: http://stackoverflow.com/questions/16607960/nsnull-length-unrecognized-selector-sent-to-a-memory-leak/16610117 –

+0

@ पवन Während das Unter bestimmten Umständen kann es eine ziemlich gefährliche Strategie für die Produktion sein. – dmur

+0

aber was hat JSON damit zu tun? – user102008

Verwandte Themen