フック船長
クラス・ダンプ・ファイル・ヘッダは、プロパティおよびメソッドを見つけ、既知の場合
、例えば、以下の方法(この方法は、文書化しない、パッケージがIPAに存在する)を得ます。
CustomViewController :UIViewController
@property (nonatomic, copy) NSString* newProperty;
+ (void)classMethod;
- (NSString*)getMyName;
- (void)newMethod:(NSString*) output;
- CHDeclareClassは述べてプロパティとメソッドを呼び出すことができますクラス
CHDeclareClass(CustomViewController)
- メソッド呼び出しとプロパティは、(慎重クラスダンプの属性とメソッドを読んで、ここでコールする方法ですしてください)
//方法已经明确写出了传什么
# optimization 当前self或者其他
#return_type 需要传入什么类型
#class_type 传入哪一个类
#name 属性名称
CHOptimizedMethod0(<#optimization#>, <#return_type#>, <#class_type#>, <#name#>)
CHOptimizedMethod0(self, NSString*, CustomViewController, getMyName){
//需要实现的代码
}
CHDeclareMethod1(void, CustomViewController, newMethod, NSString*, output){
//需要实现的代码
}
CHOptimizedClassMethod0(self, void, CustomViewController, classMethod){
//需要实现的代码
}
CHOptimizedMethod(0, self, NSString*, CustomViewController, newProperty)
{
//需要实现的代码
}
//需要实现的代码就是,你对以上传入属性值进行修改的,需要返回就returen,不需要则调用父类,或者直接不做任何操作
//添加新的属性
CHPropertyRetainNonatomic(CustomViewController, NSString*,
newProperty, setNewProperty);
- コンストラクタ(CHConstructor)
`SWIFT
CHConstructor {
//ロードクラス
CHLoadLateClass(CustomViewController);
//クラスのクラスメソッドの名前
CHClassHook0(CustomViewController、getMyName);
CHClassHook0(CustomViewController、クラスメソッド);
//クラス名が属性
CHHook0(CustomViewController、newPropertyは);
CHHook1(CustomViewController、setNewProperty);
}