访问对象的NSNumber值会在大于一位数时引发错误的访问异常

时间:2013-03-06 18:36:50

标签: iphone ios objective-c xcode ipad

我试图将文本字段中的用户输入数据存储到对象的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;
        }
    }

1 个答案:

答案 0 :(得分:3)

我怀疑 unitsPerCase 属性会检查它是否被声明为强或保留在myOptions类中。

使用

@property (nonatomic, strong) NSNumber *unitsPerCase;