在NSDIctionary中存储NSString时,变量不是CFString

时间:2012-06-18 11:56:57

标签: ios xmppframework

我将聊天应用中的消息存储在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”仍然是零,它不应该是零。

只有在发送消息时才会发生这种情况。当它收到它们......没有问题!

任何帮助?

1 个答案:

答案 0 :(得分:0)

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