1

私のアプリは通貨計算機です。ViewController の TableView は、テキストフィールドが変更されるたびにデータをリロードします。[[textField text] length] == 0 の場合、tableView は初期データで更新する必要があります。コード全体を共有することはできませんが、次のようになります。

ViewController.m

- (void)viewDidLoad {
 [super viewDidLoad];
 array = [Model fromCoreData]; // initial data
}

- (void)textFieldDidChange:(id)textField {
 if([[textField text]length] == 0) {
   array = [Model fromCodeData]; //!
   [tableView reloadData]; // table gets same array that was when textfield length == 1
 }else{
   array = [Model calculate:array withSum:[textField text]]; //return array with calculated data
   [tableView reloadData];
 }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
 //........
 //here [cell setBuy:[[array object atIndex:indexPath]buy]] .......... etc.
 //......
 return cell;
}

問題: [[textfield text] length] == 0 の場合、テーブルは [[textfield text] length] == 1 の場合と同じ配列を取得しますが、初期値ではありません (テーブルはコアデータから元のデータを取得する必要があります)。

私は MagicalRecord を使用して CoreData を操作します。NSArray にはエンティティが含まれます。リアルタイムで CoreData に変更はありません。たぶん、誰かが同じ問題に直面しましたか?もっと適切な方法はありますか?私の悪い英語でごめんなさい:)

4

1 に答える 1