だから何らかの理由で、ある方法で、私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です。理由がわかりません。ブレークポイントを設定すると、その行にヒットしています...