gpt4 book ai didi

iphone - 为什么我的 NSNumber 总是零?

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:39 27 4
gpt4 key购买 nike

所以出于某种原因,在某种方法中,我的 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 因为 self.query 的值也是 nil,所以你在 nil 对象上设置一个值,你得到 nil ...

这有点令人困惑,但在另一种语言中,您通常会在这种情况下遇到 NullPointer 异常,而在 Objective-C 中,向 nil 发送消息是合法的,因此请注意这些情况……

关于iphone - 为什么我的 NSNumber 总是零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061100/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com