Так почему-то, по определенному методу, мой NSNumber
всегда nil
и его вождение меня гайками.Почему мой NSNumber всегда равен нулю?
Если пользователь выбирает строку в моей палитре, это вызывается и она отлично работает:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
self.query.activityLevel = [NSNumber numberWithInt:[[[self.activityArray objectAtIndex:row]objectForKey:@"key"]intValue]];
}
Однако, когда пользователь не выбирает строку, а просто переходит к следующему VC, я проверьте, есть ли activityLevel
nil
и установите его на 1
, если это так.
- (void)donePressed {
if (!self.query.activityLevel) {
self.query.activityLevel = [NSNumber numberWithInt:2];
}
NSNumber *calories = [Calculations numberOfCaloriesNeededForQuery:self.query];
[self dismissModalViewControllerAnimated:YES];
}
Проблема заключается в том, когда пользователь не выбирает строку и она попадает self.query.activityLevel = [NSNumber numberWithInt:2];
, если я печатаю объект, он по-прежнему nil
. Понятия не имею почему. Я поставил точку останова и бьет, что линия ...
2 вопросы: 1) используете ли вы ARC и 2) это запрос не нуль? –
Я использую ARC и да, похоже, что запрос равен нулю. Однако, если пользователь выбирает строку, это не ноль. – Jon