target-c: как назначить строку для NSMutableData? - PullRequest
2 голосов
/ 14 сентября 2011

Я должен отправить данные на цифровой счетчик, для которого мне нужны данные в форме NSMutableData. Я пытаюсь присвоить ему данные, но получаю ошибки.

NSMutableData *body = [[NSMutableData alloc] initWithData:[NSData @"1"];

Я хочу присвоить строку, например, «1», «запуск» и т. Д. Для NSMutableData.

Ответы [ 4 ]

9 голосов
/ 14 сентября 2011

Вы не можете преобразовать напрямую из строки NSString в NSMutableData, вы должны сначала закодировать строку как NSData. (Есть несколько способов перейти от NSData к NSMutableData, но я думаю, что mutableCopy - самый ясный.);

Попробуйте это:

NSString *yourString  = @"Your string text";
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *body = [data mutableCopy];
2 голосов
/ 14 сентября 2011
NSString *str = @"ABC";    
NSMutableData* body = (NSMutableData *)[str dataUsingEncoding:NSUTF8StringEncoding];
0 голосов
/ 14 сентября 2011

Вы можете преобразовать NSString в NSData с помощью [@"1" dataUsingEncoding:NSUTF8StringEncoding], остальной код в порядке.

NSMutableData *body = [[NSMutableData alloc] initWithData:[@"1" dataUsingEncoding:NSUTF8StringEncoding]];
0 голосов
/ 14 сентября 2011
NSMutableData* body = [[@"1" dataUsingEncoding:NSUTF8StringEncoding] mutableCopy];
...