我试图将对象添加到NSMutableArray,但它不会起作用

时间:2017-11-06 15:00:05

标签: ios objective-c nsmutablearray

我是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;
}

如果你愿意花时间向我解释我做错了什么,我将不胜感激。

最诚挚的问候!

0 个答案:

没有答案