我想将文本字段中的用户输入数据存储到对象的NSNumber变量中。根据我的日志,价值存储很好,一切。访问一个对象的NSNumber值当大于一个数字时抛出错误的访问异常
问题是当用户通过导航改变视图,然后返回。当我尝试访问NSNumber值时,出现访问错误。奇怪的是,如果我存储的值只有1位数(0-9),我不会崩溃。
一些代码...
//conversion then storage of the NSNumber value into the object
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterNoStyle];
NSNumber *num = [formatter numberFromString:textField.text];
_options.unitsPerCase = num;
NSLog(@"num: %@",num);
break;
//user leaves screen i reload tabledata and try to
//populate with previously saved NSNumber
case NumberTextFieldSection:
{
switch (indexPath.row)
{
case NumberTextFieldRow:
{
cell.valueTextField.text = [_options.unitsPerCase stringValue];
break;
}
default:
break;
}
}
我不知道,但尝试使用'self.options',而不是'_options'。这将使您的访问器工作,并将保留。 – 2013-03-06 18:43:59
你上面试过了吗? – 2013-03-06 18:51:51
isnt self.options和_options相同,如果你通过'@synthesize options = _options;'来合成属性?请记住,在选项类的其他变量中存储值工作得很好。它只有这个导致错误的NSNumber。 – JMD 2013-03-06 18:52:53