Цель C - Что лучше передать ссылку в NSData или использовать NSMutableData

Я разрабатываю API, который возвращает NSData вызывающей стороне. Мне нужно, чтобы объект был предоставлен в параметрах функции (не в качестве возвращаемого значения). Какой из подходов ниже является предпочтительным и почему?

NSData* data;
[self foo1:&data];

-(BOOL)foo1:(NSData**)data {
  *data = [@"1234" dataUsingEncoding:NSUTF8StringEncoding];
  ...
}

или же

NSMutableData* data = [[NSMutableData alloc] init];
[self foo2:data];

-(BOOL)foo2:(NSMutableData*)data {
  [data setData:[@"1234" dataUsingEncoding:NSUTF8StringEncoding]];
}

2 ответа

Решение

Спасибо @Willeke. Я собираюсь принять ваш совет - используйте NSMutableData*, если метод добавляет данные, используйте NSData**, если метод создает данные.

Чем лучше асинхронный ответ:

- (void)fooWithCompletion:(void (^)(NSData *responseData, NSError *responseError))completion;
Другие вопросы по тегам