2

私はCydiaの微調整をプログラムしようとしており、ビューのロードと非表示中にviewcontrollerクラスをフックする必要があります-私は次のことを試しました:

Tweak.xm:

%hook ScoresViewController

- (void)viewWillAppear:(BOOL)fp8 {
    %orig;

    self.view.hidden = YES;
}

%end

残念ながら、 THEOS を使用して Tweak を「作成」しようとすると、次のようになります。

Making all for tweak scoresenhancer...
Preprocessing Tweak.xm...
Compiling Tweak.xm...
Tweak.xm: In function 'void       _logos_method$_ungrouped$ScoresViewController$viewWillAppear$(ScoresViewController*, objc_selector*, BOOL)':
Tweak.xm:49: error: request for member 'view' in 'self', which is of non-class type 'ScoresViewController*'
Tweak.xm: In function 'void _logos_method$_ungrouped$ScoresViewController$viewWillAppear$(ScoresViewController*, objc_selector*, BOOL)':
Tweak.xm:49: error: request for member 'view' in 'self', which is of non-class type 'ScoresViewController*'
lipo: can't figure out the architecture type of: /var/tmp//ccFsVzMR.out
make[2]: *** [obj/Tweak.xm.o] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [scoresenhancer.all.tweak.variables] Error 2

よろしくお願いします。また、カスタマイズされたクラス (つまり、ScoresViewController) の ivar に到達する方法を理解したいと思います。

4

1 に答える 1

3

ScoresViewController が UIViewController の子孫であることをコンパイラに伝えるものは何もありません。ここでできることがいくつかあります。

[(UIViewController *)self view].hidden = YES;

また

@interface ScoresViewController : UIViewController @end
...
self.view.hidden = YES;
于 2012-12-20T20:12:39.063 に答える