关于ios:ARC不允许将非Objective-C指针类型’const char *’隐式转换为’id’

Implicit conversion of a non-Objective-C pointer type 'const char *' to ‘id’ is disallowed with ARC

我正在尝试将nsstring转换为字节数组。然后我需要将字节数组保存到字典中。所以我这样做了

1
[dict setObject:[plainString UTF8String] forKey: key];

但我得到了编译错误

1
Implicit conversion of a non-Objective-C pointer type 'const char *' to ‘id’ is disallowed with ARC


nsdictionary要求键/值是Objective-C对象。在您试图生成的词典中不能使用nsstring有什么原因吗?

如果您真的只需要原始字节,那么需要将这些字节装箱到NSValueNSData对象中。


如果dictNSDictionary,则不能存储非对象。有一个cocoa数据结构NSMapTable可以存储非对象指针,也可以将非对象数据包装在NSData实例中。

我不得不问你为什么要这么做。为什么不存储NSString并只在需要时调用convert?