我是Objective-C的新手,在理解某些事情方面仍然有些困难。下面我尝试在 @interface 中声明 NSMutableArray ,然后在 @implementation 中声明我从我的localhost获取JSON并尝试将数据添加到我的 NSMutableArray 中。但是,由于某些原因它不会起作用。
我正在阅读我在网上找到的所有内容,但无论如何我都不明白我做错了什么。这是我的 TableViewController.m 中的代码:
@interface ScoresListTableViewController ()
{
NSMutableArray* dataSource;
}
@end
@implementation ScoresListTableViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://localhost:8082/cp_panel/pages/includes/functions.php"]];
NSURLSessionTask *task = [[self getURLSession] dataTaskWithRequest:request completionHandler:^( NSData *data, NSURLResponse *response, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
NSError *jsonError;
NSArray *parsedJsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];
// Here I'm trying to add the objects from received JSON
dataSource = [[NSMutableArray alloc] init];
[dataSource addObject:parsedJsonArray];
NSLog(@"%@", dataSource); // Outputs the data fine
});
}];
[task resume];
// But here it will output empty array ()
NSLog(@"%@", dataSource);
}
- (NSURLSession *)getURLSession {
static NSURLSession *session = nil;
static dispatch_once_t onceToken;
dispatch_once( &onceToken,
^{
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
session = [NSURLSession sessionWithConfiguration:configuration];
});
return session;
}
如果你愿意花时间向我解释我做错了什么,我将不胜感激。
最诚挚的问候!