Objective-C初始化可变数据结构

Objective-C初始化可变数据结构,objective-c,nsdata,nsmutabledata,Objective C,Nsdata,Nsmutabledata,当我使用这段代码时: NSMutableData *stringMutableData = [[_inputMessageField stringValue] dataUsingEncoding:NSUTF8StringEncoding]; 我总是得到警告: 使用类型为“NSData*”的表达式初始化“NSMutableData*”的指针类型不兼容 然而,代码似乎工作完美无瑕。有人能给我解释一下为什么会显示此消息,以及我将如何正确地对其进行编码吗?在您的代码中 [[u inputMess

当我使用这段代码时:

   NSMutableData *stringMutableData = [[_inputMessageField stringValue] dataUsingEncoding:NSUTF8StringEncoding];
我总是得到警告:

使用类型为“NSData*”的表达式初始化“NSMutableData*”的指针类型不兼容

然而,代码似乎工作完美无瑕。有人能给我解释一下为什么会显示此消息,以及我将如何正确地对其进行编码吗?

在您的代码中

[[u inputMessageField stringValue]数据使用编码:NSUTF8StringEncoding]

返回
NSData*

当您将其分配给可变数据时

您可以更改它们中的任何一个以不获得警告

NSData *stringData  = [[_inputMessageField stringValue] dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *stringMutableData = [[[_inputMessageField stringValue] dataUsingEncoding:NSUTF8StringEncoding] mutableCopy];