【问题标题】:id object in theos mobilesubstrate tweak , i can't disable this -(id)theos mobilesubstrate 调整中的 id 对象,我无法禁用它 -(id)
【发布时间】:2013-03-19 20:24:53
【问题描述】:
-(id)initWithUserSettings:(id)userSettings mqttSender:(id)sender;

    NSDictionary *settings3=[[NSDictionary alloc] initWithContentsOfFile:@"/var/mobile/Library/Preferences/myfilehere.plist"];

        if ([[settings3 objectForKey:@"invisiblechat"] boolValue]){

        return NULL;

        }

        else{%orig;}

    [settings3 release];

    }

我不知道这个代码是否正确,我搜索了 2 天没有答案。在 -(void) 上,此代码工作得非常好,它会一直禁用 -(void),直到禁用 objecForKey。我想要的是通过切换保持 (id)mqttSender 禁用/启用,但我做不到。有什么帮助吗?

【问题讨论】:

    标签: objective-c c theos cydia-substrate


    【解决方案1】:

    我不太确定你想从你的解释中实现什么,但如果你要初始化一个作为 NSObject 子类的类,你至少需要调用 [super init] 并返回 self,如果你不这样做的话调用 init 方法将无法获得对该对象的引用。

    设置返回值'void'意味着该方法不应该返回任何东西,如果你设置'id',那么'id'代表一个你没有定义的值,所以它几乎可以是任何东西.

    使用您的方法,您正在设置“id”的返回值,这意味着您应该从该方法返回一些内容。目前,您的“if”语句中有一个 return,但之后您的方法是开放式的并且不返回任何内容。在这种情况下,Xcode 会抛出一个编译错误,因为你没有返回任何东西,并且它至少期望从方法中产生一些东西,即使它是 nil。

    另一件事:在定义方法/函数时,只用分号结束方法减速,当你实现方法/函数时,你不需要分号,因为你用花括号跟随它包含该方法/函数的代码。

    【讨论】:

    • 我正在编译这个作为对 theos 的调整。上面的代码错误地缺少一个 { 和其他一些,复制错误。无论如何,有没有办法在 mqttSender 上设置回报?它是我唯一想做的事情,其他一切都是我最初想要运行的 (%orig)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2013-08-12
    • 2021-01-30
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多