2013-07-22 14 views
9

W mojej aplikacji na iOS próbuję zaktualizować informacje o użytkowniku w bazie danych (przy użyciu Stackmob), ale ciągle otrzymuję "nierozpoznany selektor wysłany do instancji".iOS i Stackmob - [NSNull length]: nierozpoznany selektor wysłany do instancji

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

}]; 
} 

Oto pełna błędów Dostaję:

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

góry dzięki.

+1

w niektórych miejscach, gdzie uzyskujesz wartość zerową lub obiekt i próbujesz ustawić zero, dlaczego masz ten błąd. sprawdź przed ustawieniem wartość z zerową lub nie. –

+0

możliwy duplikat [- \ [NSNał długość \]: nierozpoznany selektor wysłany do ... wycieku pamięci?] (Http://stackoverflow.com/questions/16607960/nsnull-length-unrecognized-selector-sent-to- a-memory-leak) – borrrden

+0

Czy możesz wydrukować self.username i zobaczyć, co zawiera? – satheeshwaran

Odpowiedz

42

Myślę, że może dlatego, że twój self.username jest pusty. Zauważ, że jeśli są coraz danych nazwę użytkownika z json, nie można używać if(username){...} ale

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

aby uniknąć pustych danych, ponieważ interpreter json wygeneruje obiekt NSNull.

+2

Chociaż to rozwiązanie działa, ale znalazłem lepsze rozwiązanie tutaj: http://stackoverflow.com/questions/16607960/nsnull-length-unrecognized-selector-sent-to-a-memory-leak/16610117 –

+0

@ पवन Podczas gdy to może działać w pewnych okolicznościach, jest to dość niebezpieczna strategia do wykorzystania w produkcji. – dmur

+0

, ale co JSON ma z tym wspólnego? – user102008

Powiązane problemy