so prüfen Sie den null-Objekt zurückgegeben, die in xcode
Habe ich ein NULL-Objekt zurückgegeben, von einem JSON-query-string und ich weiß nicht, wie zu überprüfen, für die es in einer If-Anweisung. Meine syntax ist unten, aber ich noch don T scheinen in der Lage sein, um eine Falle für den NULL
Klasse (D. H., wenn nichts zurückgegeben wird, dann werden keine text-variable kann eingestellt werden, deshalb MUSS es ein NULL
Klasse?), wie auch immer, ich brauche, um zu überprüfen, dass die @"BillingStreet"
etwas hat, und wenn nicht zu vermeiden, die Verarbeitung (sonst stürzt die app wie Sie versucht, nichts zu den text-Wert eines der fields
im VC
):
- (void) tableView: (UITableView *)itemTableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath{
NSDictionary *obj = [self.dataCustomerDetailRows objectAtIndex:indexPath.row];
NSString *text = [obj objectForKey:@"BillingStreet"] == nil ? @"0" : [obj objectForKey:@"BillingStreet"];
NSLog(@"%@",text);
if (text.class == NULL){
} else {
NSLog(@"no street");
self.labelCustomerAddress.text = [obj objectForKey:@"BillingStreet"];
}
}
InformationsquelleAutor Bartley | 2013-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
JSON den Wert "null" umgewandelt
[NSNull null]
, die Sie überprüfen könnenfür mit
weil es ein singleton.
Alternativ können Sie prüfen, ob das Objekt enthält den erwarteten Typ, d.h. ein string:
Dieser ist robuster im Fall, dass ein server sendet fehlerhafte Daten, z.B. eine Zahl oder ein array statt als string zu haben.
Ich denke, dies ist effizienter, als es beseitigt die Notwendigkeit für die Schaffung eines string-variable : 'if ([obj objectForKey:@"BillingStreet"] == (id)[NSNull null])'
Nein, die Zuordnung
text = [obj objectForKey:@"BillingStreet"]
ist effizienter, da es retrives Wörterbuch-Wert nur einmal.Notiert, danke für die Erklärung.
InformationsquelleAutor Martin R
text == nil ? @"0" : text
oder
text ? text : @"0"
Aber wenn Sie es bekommen, JSON, dann erhalten Sie möglicherweise Instanz
NSNull
Klasse. In diesem Fall sollten Sie überprüfen,text && ![text isKindOfClass:[NSNull class]] ? text : @"0"
InformationsquelleAutor Ildar Sh