0

Theos を微調整していて、いくつかの変数の名前を確認する必要があります。

メソッドが次のようになっているとします。

- (UILabel*)makeALabel {
    UILabel *name_that_i_want = [[UILabel alloc] init];
    [name_that_i_want setText:@"abcdefg"];
    return name_that_i_want;
}

このメソッドのヘッダーを調べると、次のように表示されます。

-(id)makeALabel;

メソッドにフックしたときに、そのメソッド内で宣言された変数をダンプする方法はありますか?

-(id)makeALabel {
    %orig;
    //somehow get name of the label declared
    UILabel *label = MSHookIvar<UILabel *>(self, "name_that_i_want");
}
4

2 に答える 2

1

いいえ!

関数、メソッド、またはオブジェクト内で宣言された変数の値を知る必要があるということは、設計が悪いことを示しています。これは、オブジェクト指向プログラミングの 3 つの主要な原則の 1 つであるカプセル化に反します。

于 2013-06-26T17:35:12.380 に答える