【问题标题】:Theos - How to call instance methods from a different classTheos - 如何从不同的类调用实例方法
【发布时间】:2014-03-26 02:08:17
【问题描述】:

基本上我要做的是从SBDeviceLockScreenViewControllerlockScreenView 方法调用attemptDeviceUnlockWithPassword 方法。从不同的类调用实例方法的正确方法是什么?

%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

【问题讨论】:

  • 我认为你需要先学习objective-c的基础知识,试试标签的wiki。

标签: ios objective-c cydia theos cydia-substrate


【解决方案1】:

为了能够调用实例方法,您需要一个类的实例。从SBDeviceLockController header可以看出有一个类方法+(id)sharedController。此方法将返回一个实例,您可以在该实例上调用实例方法。

SpringBoard 中有很多类遵循这种让类方法返回单例实例的模式(这称为Singleton pattern)。

在进行调整开发之前,您需要了解更多有关 Objective-C 的基础知识,尝试创建一个简单的应用程序。苹果的文档很不错(try starting here),网上还有很多其他资源(比如Stanford CS193P course)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多