sqlite テーブルから読み取り、UIViewController のメイン ViewController クラス サブクラスで宣言されている NSMutableArray にデータを保存するアプリがあります。このメソッドは viewDidLoad で呼び出されます。この NSMutable 配列は次のように宣言されます。
@property (strong, nonatomic) NSMutableArray *dataForTable;
このデータは、アプリの起動時に正常に読み込まれるテーブルに表示されます。ここで、この NSMutableArray の内容をログに記録するためだけにメソッドを宣言します
-(void) arrayTest {
NSLog(@" data in test array is%@",dataForTable);}
このクラス内のどこかで呼び出しても、出力は問題ありません。
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
[self arrayTest]; . . . . . . }
しかし、この NSMutableArray のこのデータは、別のクラス (セルを左から右にスライドさせるために touchbegan と touchmoved を追跡するために作成された UITableViewCell のサブクラス) からログを呼び出すと、突然 (null) になります。
[[ViewController alloc]arrayTest];
これは私に出力を与える
data in test array is(null)
何故ですか?-textFieldShouldBeginEditing を呼び出すと、出力は再び正常になります。配列自体が空になるのはなぜですか (または、単に空だと思っているだけかもしれません)、後でコンテンツを正常に出力するのはなぜですか?