Сохраните JSON в файл с iOS, используя запрос к серверу

#ios #json #asynchronous

#iOS #json #асинхронный

Вопрос:

У меня проблема. Это мой код

 #define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)

-(void)saveJson
{

    dispatch_async(kBgQueue, ^{
        NSData* data = [NSData dataWithContentsOfURL:
                        kURL];
        [self performSelectorOnMainThread:@selector(fetchedData:)
                               withObject:data waitUntilDone:YES];
    });
}

- (void)fetchedData:(NSData *)responseData
{
    NSDictionary *json  = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:nil];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = paths[0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Result.plist"];

    NSLog(@"%@", filePath);
    [json writeToFile:filePath atomically:YES];
}
 

Я могу получить json в переменной json, поэтому, если я добавлю журнал, я увижу json, файл тоже будет создан. Но когда я хочу просмотреть содержимое файла, этот список не содержит никакого значения, только тип xml apple. JSON хорошо сформирован, и я тестировал его с помощью простого приложения, но в этом случае словарь не сохраняется в файле. Этот класс находится в одном классе. Итак, в главном контроллере представления в методе viewDidLoad я использую это

 MarketDataAPI *marketApi = [[MarketDataAPI alloc] init];
[marketApi updateMarketApi];