Tweak.xm 开发怎么引用self.navigationController


#45

那我这样的语法有问题吗


#46

没问题吧,UIViewController 都可以


#47

@interface NewMainFrameViewController
{
MMMainTableView *m_tableView;
}

@end

大佬问下 这种属性的在Tweak.xm怎么使用
self->m_tableView 我用这个时候 会报错 请大神指点


#48

大佬有空帮我看这个贴最后一个问题可以不
@interface NewMainFrameViewController
{
MMMainTableView *m_tableView;
}

@end

就是 在{ }里受保护的参数怎么在.xm中调用 谢谢


#49
MMTableView *tableView = [self valueForKey:@"m_tableView"];

#50

报这个错误


#51
@interface NewMainFrameViewController : UIViewController

@end

#52

谢大佬 膜拜 大佬收下的膝盖


#53

MSHookIvar也行


#54

Usage MUHook to set and get ivar

#import "MUHook.h"

//	Get ivar value
//	取实例变量
NSString *name = MUHIvar(instance, _name);

//	Set ivar value
//	设置实例变量
MUHIvar(instance, _name) = @"New Name";

#55


紫薯布丁


#56

@interface NewMainFrameViewController : UIViewController
@property(strong,nonatomic)NSArray *list;
@end

@property(strong,nonatomic)NSArray *list;
是我自己添加新的属性 怎么一点用就崩了 大佬我这写法哪里错了


#57

查看崩溃日志


#58

@interface NewMainFrameViewController : UIViewController
@property(strong,nonatomic)NSArray *list;
@end
%hook NewMainFrameViewController
。。。
%end

-[NewMainFrameViewController setList:]: unrecognized selector sent to instance 0x10d12de00

*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[NewMainFrameViewController setList:]: unrecognized selector sent to instance 0x10d12de00’

*** First throw call stack:

(0x18fb441c0 0x18e57c55c 0x18fb4b278 0x18fb48278 0x18fa4259c 0x10ce6f570 0x19598d3dc 0x195a46fcc 0x195a46ea4 0x195a461ec 0x195a45c38 0x195a457ec 0x195a45750 0x19598a54c 0x192e5240c 0x192e470e8 0x192e46fa8 0x192dc3c64 0x192deb0d0 0x192debaf0 0x18faf17dc 0x18faef40c 0x18fa1e068 0x1959f85dc 0x1959f3360 0x1001afd2c 0x18ea005b8)

日志是这样的 找不到这个属性

是不是我这样写的想法是错的 如果要这样给 UIViewController 添加给属性要怎么写

@interface NewMainFrameViewController : UIViewController
@end
NSArray *list;
%hook NewMainFrameViewController
。。。
%end
我尝试过不写在 UIViewController 中添加属性 直接写在Tweak.xm中是可以的
不过这样写 我不确定这样写后 list 的周期性 什么时候销毁 还有是不是只能这么写


#59

这个类是dump出来的还是你自己定义的?


#60

还有这个方法是hook原来的方法,还是新增的方法,新增方法%new


#61

试试用这个的setter方法来赋值你的list


#62

NewMainFrameViewController . 是我dump微信出来的类 我想在这个类里面添加新的属性 那么这个属性 setList:就是新增的类 是不是我要新写 setList:这个方法才能才能使用这个类 我去试试你说的这个方法 好像连编译都过不了 尴尬


#63

各位大佬真热情啊


#64

编译不过的原因是什么?