実際にデバッガーに表示されるタイプ NSString * を使用してメソッドに変数を渡しました。
po [myString class]
__NSCFString
デバッガー プロンプトからの場合po myString、文字列の値を確認できます。ただし、NSLog を実行すると、印刷されません。私が理解していることから、NSString と __NSCFString は無料でブリッジされているため、一方を他方と同じように使用できます。では、なぜ NSLog ステートメントから出力されないのでしょうか? それを強制するために私ができることはありますか?
文字列は次のように初期化されます。
NSString *result = [NSString stringWithUTF8String:(const char *)content];
この結果変数は、NSString * 引数を使用して、あるオブジェクトから別のオブジェクトに渡されます。NSLog ステートメントは次のようになります。
NSLog(@"Did not find \n%@ %@\n%@",key, name, myString);
keythis の出力にはとの値が含まれますが、 は含まれnameませんmyString。次の行にブレークポイントを設定すると、poコマンドを使用して myString の値を照会できます。