比如,NSData类的只读属性 @property(readonly) NSUInteger length
我这样写的,但是不起效:
%hook NSData
-(NSUInteger) length
{
NSLog(@"—hit—");
return %orig;
}
%end
get方法的话你要hook的方法是:getLength
多谢回答。
我试了下,把 -(NSUInteger) length 改成 -(NSUInteger) getLength
hook不到,控制台日志显示有警告:
MS message not found [NSData getLength]
同样遇到这个问题,求大神回答
我刚刚又试了一下, 可以hook的到。。。
我原来的疑问是:hook get方法的时候,怎么访问原来的成员变量?
正向开发的写法是:
@interface MYObject : NSObject {
NSString *str;
}
@propery NSString *str;
@end
- (NSString *) str {
return [NSString stringWithFormat:@"新的字符串%@",self->str];
}
但是写Tweak的时候报错 error: instance variable ‘str’ is protected
后来写成:
-
(NSString *) str {
return [NSString stringWithFormat:@“新的字符串%@”,%orig];
}
就没问题了
1 个赞