1

Railsバックエンドを備えたiPhone用のシンプルなTo-Doリストアプリを作成しています。

これまでのところ、WebアプリからTo-Doリストのすべてをプルしtasks、JSONを解析して、UITableViewに挿入することができます。

Railsからのjsonの応答:

[
  {"id":1,"name":"Buy bread"},
  {"id":8,"name":"Get gas"},
  {"id":14,"name":"Call John"}
]

各タスクの行であるUITableViewでは、セルのtextLabelはタスクの名前です。

ここに画像の説明を入力してください

私が今抱えている問題は、セルをタスクのレコードIDに関連付ける方法です。

2つのタスクに同じ名前を付けることができるため、名前だけに基づいてハッシュからIDを取得することはできません。

ユーザーがUItableViewを編集した後(たとえば、タスクを削除した後)、railsアプリにポストバックできるように、レコードIDが必要です。

セルに設定できるプロパティはありますか?明らかな何かが欠けているような気がします。これは私の最初のiPhoneアプリですので、優しくしてください。

4

2 に答える 2

2

テーブルで使用するために、JSON配列をObjective-C配列にどのように取得していますか?タスクのIDに対して再度それを行う必要があり、- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPathメソッドでは次のようなものを使用しますtheID = [idArray objectAtIndex:indexPath.row];

于 2012-07-19T20:05:39.563 に答える
1

より良い解決策は、クライアントで適切なデータモデルを維持することです。JSONをモデルとして使用することもできますが、CoreDataはもう少し堅牢です。必要なのは、コントローラーにビューについて知っていることとモデルについて知っていることを関連付けさせることです。たとえば、didSelectRowAtIndexPathを使用する場合:このインデックスパスを使用してモデルにマップします。

ビューのクライアントがデータモデルをクエリできるようにするセルにプロパティを設定するソリューションは、MVCパラダイムのルールに違反しています。それはあなたの見解をあなたのモデルに結びつけますが、それは素晴らしいことではありません。

于 2012-07-19T21:37:46.803 に答える