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 に答える