[英]What is the purpose of %new & %class?
就 MobileSubstrate 调整而言,%new 和 %class 是什么意思? 例如:
%class TPBottomLockBar;
和
%new(v@:)
对不起,双重问题!
这些都是 Logos 结构。 %new
用于在运行时向 class 添加新方法,其语法为%new(typeencoding)
; 您可以在 Apple 的 Objective-C 运行时文档中获取有关 Objective-C 类型编码的信息。 请注意,这些方法的前两个 arguments 始终是 id 和 SEL,因此您的类型编码的后两个字符必须是“ @:
”。 第一个字符是返回类型,其他任何字符都是您的自定义 arguments 集。
例如,这是一个非常无用的方法:
%hook NSMutableString
%new(v@:)
- (void)appendAwesomeThings {
[self appendString:@"Awesome."];
}
%end
(这实际上可能不起作用,因为 NSString 是一个 class 集群,但它同样可以作为示例!)
%class
是一个不推荐使用的指令,用于前向声明要在运行时使用的 class; 它已被替换为%c(ClassName)
,它将被内联使用。 例如,
[[%c(NSString) alloc] initWithString:@"Cool."];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.