1. ホーム
  2. objective-c

[解決済み] NSLog オーバーライドされた記述方法でのオブジェクトのメモリアドレスの記録

2022-09-25 05:45:11

質問

オブジェクトの記述メソッドをオーバーライドしています。私はオブジェクトのメモリアドレスを表示する方法を知る必要があります。 {???} を以下のコードで置き換える必要があります。

-(NSString *) description {
    return [NSString stringWithFormat:@"<SomeClass: %@>\nparmeterOne: %@\nparameterTwo: %@",
            {???}, self.parameterOne, self.paramterTwo];
}

このようにコンソールに表示させたい。

<SomeClass: 0x4c05600> parameterOne: 12 parameterTwo: sausages

どのように解決するのですか?

アドレスを印刷するには %p という書式指定子と自己ポインタを使います。

-(NSString *) description {
    return [NSString stringWithFormat:@"<SomeClass: %p>\nparmeterOne: %@\nparameterTwo: %@",
            self, self.parameterOne, self.paramterTwo];
}