私は数週間プロジェクトに取り組んでおり、最近、データの保存を支援するシングルトン オブジェクトを実装しました。これが実装された後、メインのビュー コントローラー内でラベルを更新する際に問題が発生しました。
たとえば、次のラベルを更新しようとしています。
@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
関数の後にラベル オブジェクトの割り当てが解除されるのかということです。
これを修正する方法、または根本的な原因をさらにテストする方法についての提案は大歓迎です!