使用ARC不允许将非Objective-C指针类型'const char *'隐式转换为'id'

时间:2014-08-04 22:09:59

标签: ios objective-c xcode5 automatic-ref-counting

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

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

但是我得到了编译错误

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

2 个答案:

答案 0 :(得分:1)

NSDictionary要求键/值为Objective-C对象。你有没有理由在你想要制作的词典中使用你的NSString?

如果您确实只需要原始字节,则需要在NSValueNSData对象中包含这些字节。

答案 1 :(得分:0)

如果dictNSDictionary,则无法存储非对象。有一个Cocoa数据结构NSMapTable可以存储非对象指针,或者你可以将非对象数据包装在NSData实例中。

我不得不质疑你为什么要这样做。为什么不存储NSString并仅在需要时调用转换?