1

抱歉,如果这个问题很简单,但过去 2 天我一直被困在这个错误上,而且我无法克服它。我正在使用 Xcode 4.3.2

我正在尝试在名为 BController.m 的文件中名为“- (void) process”的方法中加载一个名为 AController.xib 的 nib

为了清楚起见,我将 ./A/AController.xib(这是一个 UIView)、./A/AController.m、./A/AController.h 复制到目录 ./B

我只提到这一点是因为我不确定这对我的问题是否重要。

目前,我的流程作为流程工作(这可能是我的问题):

  • 带有“购买”按钮的视图加载
  • 用户单击“购买”按钮,该按钮有一个名为“buyNow”的 IBOutlet
  • “buyNow”调用“buy”,然后调用“process”
  • 然后进程尝试使用以下内容(选项 1)加载 nib:

    控制器 *blah; for (id object in bundle){ if ([object isKindOfClass:[AController class]]) blah = (AController *) object; } assert(blah != nil && "blah can't be nil"); [self.view addSubView: blah];

我在这里得到的错误是 main.m 中的“线程 1:信号 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 个选择,我都得到相同的错误。在方法“过程”中尝试了每个选项。“过程”是用 Bm 写的,谁能提供一些帮助,以便我弄清楚这一点?关于这些选项为何失败的任何指导都将非常有助于我的理解,并将不胜感激。感谢您帮助菜鸟!

4

1 回答 1

1

如果AControllerUIView子类,则无法加载 NIB。验证它实际上是一个控制器,但从initWithFrame你将它添加到视图的方式和方式来看,它看起来不是,或者处理不正确。

于 2012-10-03T18:50:32.560 回答