以下のコードは正常に動作しますが、アドレスは印刷されますが、「間違ったタイプ」という警告が表示されます。私はXcodeにはかなり新しく、ポインタの未署名の変換を期待しています。Xcodeのアドレスを警告なしで印刷する方法
{NSLog(@"Released <%@> at %X, retain count now %lu", newEntry, newEntry, [newEntry retainCount]);}
以下のコードは正常に動作しますが、アドレスは印刷されますが、「間違ったタイプ」という警告が表示されます。私はXcodeにはかなり新しく、ポインタの未署名の変換を期待しています。Xcodeのアドレスを警告なしで印刷する方法
{NSLog(@"Released <%@> at %X, retain count now %lu", newEntry, newEntry, [newEntry retainCount]);}
ポインタアドレスの正しい形式指定子は%Pである:
NSLog(@"Released <%@> at %p, retain count now %lu", newEntry, newEntry, [newEntry retainCount]);
多くの感謝 - ジョン –
% pはポインタのために使用されます。文字列プログラミングガイドの書式指定子を参照してください。
%pを使用する必要があるインスタンス変数のアドレスを表示するには、次のように入力します。
NSLog(@"Address %p", newEntry);
たぶん、あなたはこのになっているはずです - そのより一般的な解決策 http://vgable.com/blog/tag/nslog/
retainCountは無用です。それを呼び出さないでください。 – bbum
@bbumまあ、ええと、あなたが学んでいるときに、retainCountは実際に面白いです。 –
実際はありません。 'retainCount'はせいぜい誤解を招きます。 http://www.friday.com/bbum/2011/12/18/retaincount-is-useless/ – bbum