объединить объекты nsdata в объект nsmutabledata - PullRequest
6 голосов
/ 24 февраля 2012

Я вполне уверен, что мне нужно использовать NSMutableData для этой проблемы, так как я буду обращаться к объекту несколько раз и добавлять каждый раздел данных, как только он у меня будет.

Проблема, с которой я столкнулся, заключается в том, чтоЯ хочу создать один большой объект NSMutableData, который будет создан несколькими небольшими объектами NSData, которые добавляются в конец изменяемого объекта данных

Я пробовал следующее.

РЕДАКТИРОВАТЬ: // Этот метод теперь работает и добавляет данные как предполагалось тоже.

- (void) constructRequest
{
    NSData * protocolInt = [self addProtocolVersion];
    NSMutableData * myMutableData = [[NSMutableData alloc] init];

    NSData *first_data = [self addProSig]; //nsdata type
    NSData *second_data = [self addAct]; //nsdata type
    [myMutableData appendData:first_data];
    [myMutableData appendData:second_data];
    //etc


    [protocolInt writeToFile:@"/Users/imac/Desktop/_dataDump.dat" atomically:YES];

}

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

NSMutableData *first_data = [self addProSig]; //nsdata type
        NSMutableData *second_data = [self addAct]; //nsdata type

у меня есть предупреждения в обеих строках

несовместимых типов указателей, инициализирующих NSMutableData * _strong, с выражением типа NSData* '

любая помощь будет оценена, также возможны лучшие решения, которые я использую, если таковые имеются.

1 Ответ

5 голосов
/ 13 апреля 2012

Чтобы избавиться от этих предупреждений, вы можете сделать изменяемую копию, как эта ...

NSMutableData *first_data = [[self addProSig] mutableCopy]; //nsdata type
NSMutableData *second_data = [[self addAct] mutableCopy]; //nsdata type
...