Разбор NSData с содержимым файла

Я извлекаю из Интернета какой-то файл, содержащий данные в определенном формате, который я хотел бы проанализировать. Однако я знаю только, как получить файл из Интернета:

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

В методе синтаксического анализа я хотел бы токенизировать каждую строку файла, но я не уверен, как извлечь строки из объекта NSData.

-(void)parseData:(NSData *)responseData {
    //tokenize each line of responseData
}

Любое предложение?


person mm24    schedule 12.05.2014    source источник
comment
Что именно ты собираешь?   -  person Larme    schedule 12.05.2014
comment
Вы можете преобразовать NSData в NSString. Затем разделите эту строку на каждом разрыве строки и выполните цикл по результирующему массиву.   -  person Marc    schedule 12.05.2014
comment
Преобразуйте NSData в NSString и используйте CFStringTokenizer. Ссылка Apple здесь или см. StackOverflow Ответ   -  person Pancho    schedule 12.05.2014


Ответы (1)


NSData не находится в формате, в котором вы можете его проанализировать. Просто преобразуйте его в NSString следующим образом:

-(void)parseData:(NSData *)responseData
{
    NSString *stringFromData = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    NSArray *eachLineOfString = [stringFromData componentsSeparatedByString:@"\n"];
    for (NSString *line in eachLineOfString) {
        // DO SOMETHING WITH THIS LINE
    }
}
person Ben    schedule 12.05.2014