だから何らかの理由で、ある方法で、私NSNumber
はいつもnil
、それが私を狂わせる.
ユーザーがピッカーで行を選択すると、これが呼び出され、正常に動作します。
- (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
です。理由がわかりません。ブレークポイントを設定すると、その行にヒットしています...