Я пытаюсь получить удар по моему утверждению if. Я выбираю qDiff (integer32) из базы данных Core Data, и все работает, кроме попадания в оператор if:
NSString *diff;
NSArray *fetchedObjects = [qContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *info in fetchedObjects) {
NSLog(@"idQ: %@", [info valueForKey:@"idQ"]);
NSLog(@"qDiff: %@", [info valueForKey:@"qDiff"]); //<<<<<<<<<Print correct number
diff = [info valueForKey:@"qDiff"];
NSLog(@"diff: %@", diff); //<<<<<<<<<Print correct number
if ([diff isEqual:@"1"]) NSLog(@"EASY");
//if ([diff isEqualToString: @"2"]) NSLog(@"MEDIUM");
//if ([[info valueForKey:@"qDiff"] isEqualToString: @"3"]) NSLog(@"HARD"); //<<<<<<tried this first
NSLog(@"question: %@", [info valueForKey:@"question"]);
}
[fetchRequest release];
Я пробовал разные операторы If, но он не срабатывает (выведите NSLog).
Кто-нибудь, кто может дать мне подсказку?
========= UPDATE ==========
Я изменил на:
if ([diff isEqualToString:@"1"]) NSLog(@"EASY");
И получил следующее:
2010-12-12 15: 39: 49.321 XX_v2 [2950: 207] idQ: 0
2010-12-12 15: 39: 49.321 XX_v2 [2950: 207] qDiff: 1
2010-12-12 15: 39: 49.322 XX_v2 [2950: 207] дифференциал: 1
2010-12-12 15: 39: 49.322 XX_v2 [2950: 207] - [_ PFCachedNumber isEqualToString:]: нераспознанный селектор, отправленный экземпляру 0xa0f9008
2010-12-12 15: 39: 49.324 XX_v2 [2950: 207] * Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [_ PFCachedNumber isEqualToString:]: нераспознанный селектор, отправленный экземпляру 0xa0f9008'
========== ОБНОВЛЕНИЕ № 2 =======
Пробовал:
if ([diff isEqual:@"1"]) NSLog(@"EASY");
нет разницы в выходе:
2010-12-12 15: 55: 57.381 XX_v2 [3151: 207] idQ: 0
2010-12-12 15: 55: 57.382 XX_v2 [3151: 207] qDiff: 1
2010-12-12 15: 55: 57.382 XX_v2 [3151: 207] diff: 1
2010-12-12 15: 55: 57.382 XX_v2 [3151: 207] Вопрос: Хотите новый?
Однако в отладчике я нашел:
'diff' "Переменная не CFString"
======== UPDATE # 3 ========
Обновлен код выше, чтобы показать определение diff.
======== UPDATE # 4 ========
Я наконец-то решил проблему с помощью этого утверждения:
if ([[info valueForKey:@"qDiff"] intValue] == 1) NSLog(@"EASY");