如果这个问题是初级的,很抱歉,但在过去的两天里,我一直被这个错误所困扰;我一直没能通过它。我正在使用Xcode 4.3.2
我正试图在名为BController.m 的文件中加载一个名为AController.xib的笔尖,方法名为"-(void)process">
为了清楚起见,我照抄了/A/AController.xib(它是一个UIView)/将.A/AController.m、./A/AController.h添加到目录/B
我之所以提到这一点,是因为我不确定这对我的问题是否重要。
目前,我的流作为流工作(这可能是我的问题):
- 视图加载时带有"购买"按钮
- 用户单击"购买"按钮,该按钮有一个名为"buyNow"的IBOutlet
- "buyNow"调用"buy",然后调用"process">
-
该过程然后尝试用以下内容加载笔尖(选项1):
A控制器*等等;for(bundle中的id对象){if([object isKindOfClass:[AController-class]])blah=(AController*)对象;}断言(blah!=nil&&"blah不能为nil");[self.view addSubView:blah];
我在这里得到的错误是main.m中的"线程1:signal SIGABRT"我也试过(选项2),
AController *myView = [[AController alloc] initWithFrame:self.view.bounds];
[self.view addSubview:myView];
[AController release];
和(选项3)
AController * vc = [[AController alloc] initWithNibBundle:@"AController" bundle:nil]; [self.nc pushViewController:vc animated:NO];
我对所有3个选项都有相同的错误。每个选项都在方法"过程"中进行了尝试。"过程"是用B.m.写的。有人能帮我弄清楚吗?关于这些选择失败的原因的任何指导都将非常有助于我的理解,我们将不胜感激。谢谢你帮了一个小家伙!
如果AController
是UIView
子类,则无法加载NIB。验证它实际上是一个控制器,但从initWithFrame
和将它添加到视图的方式来看,它看起来不是,或者处理不正确。