CoreDataとやり取りする既存のコードを使用しています。私は後で回帰を導入することを実現するいくつかの変更を行った。私は問題を導入したコード行を分離することができましたが、なぜ私はそれが問題なのか理解できていません。CoreDataが更新された値を返さない
コードには記事を読んで、それらを読んだものとしてマークします。私はマーキングコードを変更せず、正しく機能することを確認しました。しかし、読み取りの記事のリストを取得するのコードの他の層に、私は次の変更作られた:上記
//Old
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
...
[self retrieveReadArticles];
...
}
- (void)retrieveReadArticles {
userHistory = [UserHistory retrieveUserHistory]; //stored in iVar
self.readArticles = userHistory.readArticles;
}
を正常に動作し、私の読み取りの記事の更新リストを与えます。
//New
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
...
[self retrieveReadArticles];
...
}
- (void)retrieveReadArticles {
UserHistory* userHistory = [UserHistory retrieveUserHistory]; //local variable
self.readArticles = userHistory.readArticles;
}
範囲の変化は、機能を壊して、更新しないために読む記事のリストになります。
同僚と私はivarが操作を完全に完了できると推測していましたが、ローカル変数は正しく保持されていてはならず、更新を返す前に範囲外になります。誰もこの予期しない動作を説明するリソースに向けて私を指摘できますか?