Theos - Как вызывать методы экземпляра из другого класса
В основном то, что я пытаюсь сделать, это назвать attemptDeviceUnlockWithPassword
метод из SBDeviceLockScreenViewController
"s lockScreenView
метод. Как правильно вызвать метод экземпляра из другого класса?
%hook SBLockScreenViewController
-(void)lockScreenView:(id)view didScrollToPage:(int)page
{
if (page==0)
{
//call attemptDeviceUnlockWithPassword:@"0000" appRequested:NO
}
%orig;
}
%end
%hook SBDeviceLockController
- (BOOL)attemptDeviceUnlockWithPassword:(NSString *)passcode appRequested:(BOOL)requested
{
return %orig;
}
%end
1 ответ
Чтобы иметь возможность вызывать метод экземпляра, вам нужен экземпляр класса. Из заголовка SBDeviceLockController видно, что существует метод класса +(id)sharedController
, Этот метод вернет экземпляр, для которого вы можете вызвать методы экземпляра.
В SpringBoard существует довольно много классов, которые следуют этому шаблону, когда метод класса возвращает экземпляр singleton (это называется шаблоном Singleton).
Вам нужно больше узнать об основах Objective-C, прежде чем приступить к разработке, попробуйте просто создать простое приложение. Документация Apple довольно хорошая ( попробуйте начать здесь), и в Интернете есть много других ресурсов (например, курс Stanford CS193P).