我已经在一个项目上工作了几个星期,最近实现了一个单例对象来帮助保存数据。实施后,我在主视图控制器中更新标签时遇到问题。
例如,我正在尝试更新以下标签:
@property (nonatomic, retain) IBOutlet UILabel *numDrinksLabel;
@property (nonatomic, retain) IBOutlet UILabel *BACLabel;
使用以下代码,该代码位于按下按钮时调用的函数内:
BACLabel.text = [NSString stringWithFormat:@"%.2f", user.BAC];
numDrinksLabel.text = [NSString stringWithFormat:@"(%i)", user.numDrinks];
这个代码块给了我运行时错误:
-[__NSCFString setText:]: unrecognized selector sent to instance 0x1197ef40
viewDidLoad
但是,在内部调用或执行的相同代码块viewDidAppear
没有问题。最初这向我表明我的@property
声明存在问题,但是当我更改为 时,我得到了同样的错误,当我更改为 时retain
,uilabel 对象只是 null,这是意料之中的,但仍然非常令人沮丧。strong
weak
所以问题是,为什么标签对象会在viewDidAppear
函数之后被释放?
任何有关如何解决此问题或进一步测试根本原因的建议将不胜感激!