Я по-прежнему новичок в использовании NSURL для получения данных и, как представляется, имеет проблемы при попытке использовать это. В этом случае я использую debug для проверки всей даты, входящей в ViewDidload, и все правильные данные поступают и разделяются на массивы, которые я затем хочу использовать для создания моего контроллера представления таблиц. Однако, когда мы достигаем метода NumberOfRows в разделе, все массивы, похоже, были сброшены на нуль. Я пробовал использовать различные комбинации решений NSURL, но ни один из них не кажется дальше, чем тот, который я использую прямо сейчас (что, по крайней мере, показывает некоторые данные, поступающие). Может кто-нибудь, пожалуйста, сообщите мне, если я сделаю очевидную ошибку, или если не дать мне надежный кусок кода, который я должен использовать для выполнения простого GET, подобного этому. спасибо.Проблемы с загрузкой табличного представления с данными, полученными с использованием NSURL
Здесь ниже моего кода:
@implementation MyLessonsTableViewController
NSArray *pastarr = nil;
NSArray *todoarr = nil;
NSArray *comingarr = nil;
NSArray *jsonless = nil;
- (void)viewDidLoad {
[super viewDidLoad];
// GET MY LESSONS FROM DATABASE
jsonless = [[NSArray alloc] init];
pastarr = [[NSArray alloc] init];
todoarr = [[NSArray alloc] init];
comingarr = [[NSArray alloc] init];
NSString *token = @"5cfd28bed3f5f5bd63143c81a50d434a";
NSString *urlString = [NSString stringWithFormat:@"http://soon.nextdoorteacher.com/apps/api/nextdoorteacher/student-lessons?t=%@", token];
NSURL *urlcc = [NSURL URLWithString:urlString];
NSData *data = [NSData dataWithContentsOfURL:urlcc];
NSError *error;
NSMutableDictionary *jsonLess = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions
error:&error];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
NSLog(@"My Lessons Json == %@", jsonLess);
// SPLIT ARRAY
NSArray *pastarr = [jsonLess valueForKeyPath:@"past"];
NSArray *todoarr = [jsonLess valueForKeyPath:@"todo"];
NSArray *comingarr = [jsonLess valueForKeyPath:@"upcoming"];
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 3;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
NSUInteger lessonRowCount = 0;
switch (section) {
case 0:
lessonRowCount = todoarr.count;
break;
case 1:
lessonRowCount = comingarr.count;
break;
case 2:
lessonRowCount = pastarr.count;
break;
default:
break;
}
return lessonRowCount;
}
Да, это хорошо работает сейчас. Большое спасибо @rmaddy – Kitcc