2013-03-18 2 views
0

Я работаю над этим в течение нескольких дней и не получаю нигде. Я был бы признателен за любую помощь в этом.iphone добавить данные на сервер и отобразить в таблицеView

Я создаю приложение, которое получает данные (что-то вроде списка заметок) с сервера и отображает их в виде таблицы.

Когда пользователь хочет отображать/обновлять данные в представлении таблицы, пользователь вводит кнопку обновления. Затем я называю свой метод «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 и timestamp правильно, потому что я просто добавляю userId и noteText в массив notes.

Должен ли я просто обновлять представление таблицы, как только я добавляю новую заметку на сервер? Это единственное, что мне нужно сделать? Я полностью потерян и не уверен, что я на правильном пути или нет.

ответ

0

Если noteId & timestamp добавляются на стороне сервера (без проблем) И Если вы успешно извлекать данные с сервера кода выше; Тогда вы должны

  1. разместить данные на сервер первого
  2. после успешного завершения запроса поста, опять же, получать данные с сервера
  3. после успешных данных ПОЛУЧИТЬ Вы должны перезагрузить таблицу с последней данные

Итак, ДА, Вы думаете об этом в правильном направлении.

+0

Отлично! Я не был уверен, что я просто упускаю другие важные роли или нет. Огромное спасибо. – kabichan

Смежные вопросы