在theos mobilesubstrate tweak中的id对象,我无法禁用此 - (id)

时间:2013-03-19 20:24:54

标签: objective-c c theos cydia-substrate

-(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天没有答案。 On - (void)这段代码工作得很好,它会禁用 - (void),直到禁用objecForKey。我想要的是保持(id)mqttSender禁用/启用切换,但我不能这样做。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

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

设置'void'的返回值意味着该方法不应返回任何内容,如果设置'id',则'id'代表您尚未定义的值,因此它几乎可以是任何值

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

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