%new 和 %class 在 MobileSubstrate 调整方面意味着什么?例如:
%class TPBottomLockBar;
和
%new(v@:)
抱歉重复问题!
最佳答案
这些都是 Logo 结构。 %new
用于在运行时为类添加新的方法,语法为%new(typeencoding)
;您可以获得有关 Objective-C 类型编码的信息 in Apple's Objective-C runtime documentation .请注意,这些方法的前两个参数始终是 id 和 SEL,因此类型编码的后两个字符必须是“@:
”。第一个字符是返回类型,其他任何字符都是您的自定义参数集。
例如,这是一个非常无用的方法:
%hook NSMutableString
%new(v@:)
- (void)appendAwesomeThings {
[self appendString:@"Awesome."];
}
%end
(这实际上可能行不通,因为 NSString 是一个类簇,但它同样可以作为一个例子!)
%class
是一个已弃用的指令,用于前向声明要在运行时使用的类;它已被替换为 %c(ClassName)
,它将被内联使用。
例如,
[[%c(NSString) alloc] initWithString:@"Cool."];
关于iphone - %new & %class 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770696/