2011-07-21 57 views
4

根据MobileSubstrate调整,%new和%class是什么意思?例如:%new&%class的用途是什么?

%class TPBottomLockBar; 

%new([email protected]:) 

对不起,双待!

+0

您是否在使用Theos?你为什么不检查文件,或询问IRC? – EmilioPelaez

+0

希望这是有用的http://iphonedevwiki.net/index.php/Logos http://iphonedevwiki.net/index.php/Special:AllPages –

回答

16

这些都是逻辑结构。 %new用于在运行时向类添加新方法,其语法为%new(typeencoding);您可以获取有关Objective-C类型编码in Apple's Objective-C runtime documentation的信息。请注意,这些方法的前两个参数始终是id和SEL,因此类型编码的后两个字符必须是“@:”。第一个字符是返回类型,其他任何内容都是您的一组自定义参数。

作为一个例子,这里是一个非常联合国有用的方法:

%hook NSMutableString 
%new([email protected]:) 
- (void)appendAwesomeThings { 
    [self appendString:@"Awesome."]; 
} 
%end 

(这实际上可能不是NSString的工作是一类集群,但它作为一个例子不能少!)

%class是一个不推荐使用的指令,用于在运行时前向声明一个类;它已被替换为%c(ClassName),它将被内联使用。 例如,

[[%c(NSString) alloc] initWithString:@"Cool."]; 
相关问题