我已经为此工作了几天,但一无所获。我将不胜感激这方面的任何帮助。
我正在创建一个从服务器获取数据(类似于笔记列表)的应用程序,并将其显示在表格视图中。
当用户想要在表格视图中显示/刷新数据时,用户点击刷新按钮。然后,我调用我的“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 文件中的“便笺”数组中。并且注释包含:
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;
}
}
这种成功地向表格视图添加了一条新推文,但它没有正确显示noteId
and ,timestamp
因为我只是将userId
and添加noteText
到notes
数组中。
那么我应该在向服务器添加新注释后立即刷新表格视图吗?这是我唯一需要做的吗?我完全迷失了,不确定我是否走在正确的轨道上。