私はこれに数日間取り組んでいますが、どこにも行きません。これについて何か助けていただければ幸いです。
サーバーからデータ (メモのリストのようなもの) を取得し、それをテーブル ビューに表示するアプリを作成しています。
ユーザーがテーブル ビューでデータを表示/更新する場合、ユーザーは更新ボタンをタップします。次に、次のような「refreshNote」メソッドを呼び出します:(単純なバージョン)
-(IBAction)refreshNote:(id)sender{
NSString *getNoteCGI = @"http://....../get-notes.cgi";
NSURL *url = [NSURL URLWithString:getNoteCGI];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
}
接続が成功したら、取得した各メモ情報を AppDelegate ファイルの「notes」配列に保存します。そしてメモには以下が含まれます:
noteId (auto incremented id)
userId
timestamp
noteText
ここまでは、問題なく動作しています。ただし、新しいメモを追加するには、ユーザーはテーブル ビューに配置された [追加] ボタンをタップします。「追加」ボタンをタップすると、アプリは、userId と noteText のテキスト ボックスを表示するビュー コントローラーに移動します。ビューコントローラーの「送信」ボタンがタップされると、次のメソッドを呼び出しています。
-(IBAction)send:(id)sender{
NSString *userId = self.userIdTextField.text;
NSString *note = self.noteTextField.text;
Note *note = [[Note alloc] init];
note.userId = userId;
note.note = note;
NSString *addCGI = @"http://......../add-note.cgi";
NSURL *rul = [NSURL URLWithString:addCGI];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
addConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
if(addConnection){
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
[appDelegate.notes addObject:newNote];
}else{
return;
}
}
この種の新しいツイートはテーブル ビューに正常に追加されますが、配列にandを追加しただけなので、noteId
と がtimestamp
正しく表示されません。userId
noteText
notes
サーバーに新しいメモを追加したら、すぐにテーブル ビューを更新する必要がありますか? それは私がする必要がある唯一のことですか?私は完全に道に迷っており、正しい軌道に乗っているかどうかわかりません。