に表示したい2つのプロパティ-type
と-を持つオブジェクトがあります。すぐに使用できる説明は次のようになります。name
description
<SGBMessage: 0x7663bb0>
オーバーライドdescription
すると、次のようになります。
return [NSString stringWithFormat:@"<%@: %x type:%@ name%@>",
[self class], (int)self, self.type, self.name];
それから私はこのような素晴らしい説明を得ることができます:
<SGBMessage: 0x7663bb0 type:loadScreen name:mainScreen>
ここまでは順調ですね。しかし、Appleのオブジェクトには動的な記述があります。ビューの説明を見ると、次のようになります。
<UIView: 0x767bcb0; frame = (0 0; 0 0); layer = <CALayer: 0x767bd50>>
しかし、hiddenをtrueに設定すると、次のようになります。
<UIView: 0x767bcb0; frame = (0 0; 0 0); hidden = YES;
layer = <CALayer: 0x767bd50>>
さて、私は一瞬、彼らdescription
がすべてのオブジェクトのメソッドに大量のifステートメントを持っているとは信じていません。NSObjectのどこかのカテゴリに、説明に表示されるプロパティを指定するためにオーバーライドできるメソッドがある可能性がはるかに高いようです。誰かが実際に何が起こっているのか知っていますか?もしそうなら、それは私が利用できるものですか?