создание и выпуск NSMutableArrays внутри GCDQueue.Это правильный путь? - PullRequest
0 голосов
/ 03 января 2012

Здесь я анализирую мои данные JSON в очереди GCD. Здесь я использую метод класса, чтобы получить значения. В своей очереди GCD я выделяю и освобождаю некоторые массивы. Это правильный способ сделать в очереди GCD, или я должен использовать спецификатор __block. Хочу очистить мою путаницу

+ (void)startProcessingFeeds:(NSData *)fetchedData{

    dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);  
    dispatch_async(concurrentQueue, ^(void) {


        NSMutableArray *idArrayTemp = [[NSMutableArray alloc] init];
        NSMutableArray *titleArrayTemp = [[NSMutableArray alloc] init];
        NSMutableArray *filesArray = [[NSMutableArray alloc] init];

        MBFeeds *feeds = [MBFeeds getFeeds];

        NSString *response = [[[NSString alloc] initWithData:fetchedData encoding:NSASCIIStringEncoding] autorelease] ;
        NSMutableDictionary *newsDic  = [response JSONValue];
        NSMutableDictionary *tempNested = [newsDic valueForKey:@"data"];

        /* here i am taking the values from dictionary and storing that to a array in my Singleton class  */

        [idArrayTemp release];
        [titleArrayTemp release];
        [filesArray release];

    });


}

1 Ответ

1 голос
/ 03 января 2012

Если я вас правильно понимаю, вы читаете данные, а затем сохраняете их в единственном экземпляре, чтобы вы могли получить к ним доступ в другом месте. Пока синглтон обеспечивает сохранение данных (например, с помощью сохраненных свойств), с вашим кодом не должно быть проблем.

__ блок необходим только тогда, когда вы хотите создать переменную вне блока и манипулировать ею внутри блока. Пример - использование блока для обработки данных массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...