Как использовать функцию%group в Theos / Logos?
Я слышал, что в теосах есть особенность%group. Из того, что я понял по этому поводу, я предполагаю, что это для применения множества хуков, если условие установлено как истинное или когда вы хотите легко включить или отключить его вместо использования if(). Это то, что я говорю, правда? И как я могу использовать эту функцию, если выполняется условие? Пожалуйста, помогите мне, так как мне действительно нужна эта функция, так как в моем коде много ifs и прочего, и было бы намного проще просто использовать%group вместо всего этого! Любые советы высоко ценится!
2 ответа
Я нашел ответ;
- Ты можешь использовать
%group thegroupname
перед%hook
но не забудьте поставить два%end
после. - В вашем
%ctor
ты можешь позвонить%init(thegroupname);
при необходимости.
Надеюсь, это поможет кому-то! Кстати, %init()
функцию можно использовать где угодно, даже внутри %hook
,
%group MessagesApp
%hook CLASS_TO_HOOK
- (id)FUNC_TO_HOOK {
return %orig;
}
%end
%end //Don't forget your second end.
%ctor {
if (TRUE) {
%init(MessagesApp);
}
}
Добавив ответ для дальнейшего уточнения, используйте так:
%group iOS8
%hook IOS8_SPECIFIC_CLASS
// your code here
%end // end hook
%end // end group ios8
%group iOS9
%hook IOS9_SPECIFIC_CLASS
// your code here
%end // end hook
%end // end group ios9
%ctor {
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) {
%init(iOS9);
} else {
%init(iOS8);
}
}