Я очень новичок в этом, так что извините за мое невежество.
У меня есть следующий метод, который я собрал воедино, и я не получаю ошибок, когда он работает, и я проверил, что я получаю данные из веб-службы. Что я замечаю, так это то, что когда я ставлю точку останова на метод numberOfRowsInSection, он возвращает 0 оба раза. Я предполагаю, что это означает, что я не загружаю свой массив правильно.
Объявление свойства моих сообщений в заголовке
@property (nonatomic, strong) NSArray *messages;
Синтезируйте это свойство в файле m
@synthesize messages;
Это метод, который загружает данные и должен перезагрузить таблицу
- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response
{
if ([response isOK])
{
// Success! Let's take a look at the data
NSDictionary *result = [NSJSONSerialization JSONObjectWithData: [[response bodyAsString] dataUsingEncoding:NSUTF8StringEncoding] options: NSJSONReadingMutableContainers error:nil];
if([[result objectForKey:@"result"] isEqualToString:@"success"])
{
NSArray *message_array = [result objectForKey:@"messages"];
for(NSUInteger i = 0; i < [message_array count]; i++)
{
EHRXMessage *m = [[EHRXMessage alloc] init];
NSDictionary *message = [message_array objectAtIndex: i];
m.subject = [message objectForKey:@"Title"];
m.callback_name = [message objectForKey:@"CallbackName"];
[self.messages setValue:m forKey:[NSNumber numberWithInt:i]];
}
[self.tableView reloadData];
}
else
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Inbox Error!"
message:@"Error loading messages"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
}
}
А вот метод, в котором я рассказываю, как загрузить ячейки
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MessageCell"];
EHRXMessage *message = [self.messages objectAtIndex:indexPath.row];
cell.textLabel.text = message.callback_name;
cell.detailTextLabel.text = message.subject;
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.messages count];
}
А вот фрагмент того, как выглядит json
{"result":"success","count":"0", "messages":[{"SenderID":"6fcb7c19-b21f-4640-a237-0e7ac5ca0ce8","Title":"General","Message":"","CallbackName":"Claudia","CallbackNumber":"1295","EncounterID":null,"AdmissionID":"d7387243-3e8a-42e4-8a85-fdd3428dae68","DateSent":"3/9/2012 12:52 PM"}]}