我创建了一个UIView子类,里面有一个UIButton,里面有目标。 选择器在UIView子类中实现,并由Interface Builder链接。
但是当我在父视图中运行addSubview时,控制器点击按钮会导致
performSelector:withObject:withObject:]:发送给deallocated的消息 实例
(我使用ARC) 我在dealloc方法中添加了一些控制台输出,我看到在viewDidLoad以UIView子类的addSubview结束后,子类被解除分配。
如何预防这种情况? 我尝试了@property(非原子,保留),将实例添加到某个全局数组中...... 但没有运气。
据我所知,由于没有强大的参考资料,ARC会对该物品进行处理,但我不能强行阻止这种情况。
任何帮助都将不胜感激。
答案 0 :(得分:0)
在View Controller类中创建子视图类的强引用可能有助于您解决问题。
@property (strong , nonatomic) UIView *subclassName;
答案 1 :(得分:0)
您是否存储了要添加为子视图的按钮(UIButton)的引用?
答案 2 :(得分:0)
问题在于将NIB链接到Class。
我将File owner链接到了class而不是链接UIView对象。
通常当使用UIViewController处理nib时,需要将File Owner链接到UIViewController类。 但是在处理UIView子类时,必须链接UIView对象。