У меня есть этот кусок кода, который сводит меня с ума.Это cellForRowAtIndexPath, отображающий 4 свойства, из которых 2 являются NSStrings и 2 являются NSNumber:
//THIS LOGS THE OBJECT BEFORE PROCESSING
NSLog(@"NO DATE EDITING");
NSLog(@"eFK: %@, eFN: %@",editedFieldKey, editedFieldName);
NSLog(@"editedObject vWA is:%@", editedObject);
NSLog(@"Is of type NSString?: %@", ([editedFieldKey isKindOfClass:[NSString class]])? @"Yes" : @"No");
//THIS TESTS TO SEE IF ITS A NSSTRING
if ([editedFieldName isKindOfClass:[NSSTRING class]]) {
NSLog(@"its nsstring");
textField.text = [editedObject valueForKey:editedFieldKey];
NSLog(@"its NOT nsstring");
}
} else {
//ELSE ITS A NUMBER SO GET ITS STRING VALUE BEFORE ASSIGNING
textField.text = [[editedObject valueForKey:editedFieldKey] stringValue];
// And we set the switch to ON if YES, OFF if NO...
if ([editedObject valueForKey:editedFieldKey]) {
NSLog(@"itemreceived equal to 1");
itemReceived.on = YES;
} else {
NSLog(@"itemreceived equal to 0");
itemReceived.on = NO;
}
[textField becomeFirstResponder];
У меня есть 4 поля, 2 NSStrings и 2 NSNumbers.Когда я нажимаю на строковые поля, я получаю строку, и она отлично работает.Но если я щелкну одно из числовых полей, я получу его строку и NSCFNumber isNaturallyRTL ... нераспознанный селектор, отправленный экземпляру по адресу:
textField.text = [editedObject valueForKey:editedFieldKey];
Почему мой тест не пройден?Почему даже когда я выбираю число, которое не является строкой, приложение выполняет первое условие if, как если бы оно было строкой?