我有這段代碼讓我發瘋。其顯示4個屬性,其中2是NSString的和2的cellForRowAtIndexPath是的NSNumber:在if-else中被識別爲NSString的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個NSString的和2個NSNumbers。當我點擊字符串字段時,我得到它的一個字符串,它工作正常。但是,如果我點擊次數的領域之一,我得到了一個字符串和NSCFNumber isNaturallyRTL ......無法識別選擇在發送到實例:
textField.text = [editedObject valueForKey:editedFieldKey];
爲什麼我的測試失敗?爲什麼即使當我選擇一個不是字符串的數字時,應用程序也會像第一個字符串一樣通過第一個條件?
您需要編輯您的問題以包含您的程序打印的完整的確切錯誤消息,而不是僅僅告訴我們其中的一部分。 –