objective-c: how to assign string to NSMutableData

2020-04-14 07:53发布

问题:

I am to send data to digital meter for which I want data in NSMutableData form. I am trying to assign it data but getting errors.

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

I want to asign string e.g. "1", "start" etc to NSMutableData.

回答1:

You can't convert directly from an NSString to NSMutableData, you have to encode the string as NSData first. (There are several ways to go from NSData to NSMutableData, but I think mutableCopy is the clearest.);

Try this:

NSString *yourString  = @"Your string text";
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *body = [data mutableCopy];


回答2:

NSString *str = @"ABC";    
NSMutableData* body = (NSMutableData *)[str dataUsingEncoding:NSUTF8StringEncoding];


回答3:

NSMutableData* body = [[@"1" dataUsingEncoding:NSUTF8StringEncoding] mutableCopy];


回答4:

You could convert NSString into NSData with[@"1" dataUsingEncoding:NSUTF8StringEncoding], the rest of your code is OK.

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