iOS子视图按钮导致应用程序崩溃

Jak*_*sie 4 crash objective-c subview ios

我在主视图中添加了一个子视图,子视图上有一个按钮,但是当我选择子视图上的按钮时,应用程序崩溃,并显示以下高亮绿色:

Thread 1:EXC_BAD_ACCESS (code=1), address=0xf0000008
Run Code Online (Sandbox Code Playgroud)

子视图有自己的viewcontrollerxib文件.

继承了我使用的一些代码:

Subview.h

- (IBAction)setDummyTime:(id)sender;
Run Code Online (Sandbox Code Playgroud)

主视图.m

PickupTimeViewController *pickupTimeView = [[PickupTimeViewController alloc]init];
[selectedView addSubview:pickupTimeView.view];
Run Code Online (Sandbox Code Playgroud)

谢谢

Boo*_*ger 7

听起来像你被解雇了.

尝试打开Zombie模式,再次崩溃应用程序并查看它是否指向您正在进行的操作,它会告诉哪个对象在发布后正在尝试执行某些操作.

Xcode - >单击您的方案 - >编辑方案 - >运行 - >诊断 - >勾选启用僵尸对象

另一件要尝试的是在调试区域中观察您的子视图,这将告诉您何时释放子视图.

设置手表的示例

此外,如果您还没有尝试过,请尝试保留对子视图的强大/保留引用.

如果您无法在代码后使用它来创建视图.

编辑:在.h

@property (nonatomic, strong) PickupTimeViewController *pickupTimeView;
Run Code Online (Sandbox Code Playgroud)

在.m

self.pickupTimeView = [[PickupTimeViewController alloc]init]; 
[selectedView addChildViewController:self.pickupTimeView]; // (i0S5+ only) if the view you add to is a view controller if not use self otherwise.
[selectedView addSubview:pickupTimeView.view];
Run Code Online (Sandbox Code Playgroud)

祝你好运,BooRanger

  • 谢谢,[self addChildViewController:...]完成了这项工作,只是在我添加子视图之前添加了该行并完成了工作......子视图已添加,但其控制器已被处理,这是我的问题. (2认同)