1

我将聊天应用程序中的消息存储在 NSDictionary 中。但是,如果我这样做

NSString *msg = [[message elementForName:@"body"] stringValue];
[m setObject:msg forKey:@"msg"];

它抱怨说(在调试时)“变量不是 CFString”并且 msg 变为 nil。所以,我把它改成:

CFStringRef cfstring=(__bridge CFStringRef) msg;
[m setObject:(__bridge NSString*) cfstring forKey:@"msg"];

但是“msg”仍然是 nil,它不应该是 nil。

这仅在发送消息时发生。当它收到它们时......没有问题!

有什么帮助吗?

4

1 回答 1

0

你不应该使用objectForKey而不是elementForName吗?当对象NSString存储时,您不需要使用stringValue. 您绝对不需要担心免费桥接到 CFStringRef,这只是编译器看到的底层 C 数据类型

于 2012-06-18T13:16:04.583 回答