В моем коде есть простой метод, который выглядит следующим образом:
- (BOOL)isFirstTimeLogin
{
NSString *t_gName =
[NSString stringWithFormat:@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:kGroupIdentifierKey]];
if ([t_gName isEqualToString:@""] || t_gName == nil) {
DLog(@"LoginViewController, m:::isFirstTimeLogin, First time login happening.");
return YES;
}
DLog(@"LoginViewController, m:::isFirstTimeLogin, Not a first time login.");
return NO;
}
Просто перейдите в комплект настроек и получите значение из спецификатора PSTextFieldSpecifier. Если я вручную захожу и добавляю произвольный текст, код работает как положено. Однако всякий раз, когда я впервые устанавливаю приложение на новое устройство, первое условие выполняется как ложное, что должно быть верно. Пройдя по коду, GDB доказывает, что объект действительно также равен нулю:
(gdb) po t_gName
(Нуль)
Что я тут не так делаю? Почему это условие не выполняется в первый раз, когда приложение установлено, и t_gName является пустым / нулевым PSTextFieldSpecifier. Я даже дошел до попытки добавить DefaultValue в свой пакет настроек пустой строки.