-1

尝试执行此行时,位于单独的函数中:

[self presentViewController:selectVC_ animated:YES completion:nil];

我收到此错误:

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSArrayM insertObject:atIndex:]: object cannot be nil”

我的声明和实例化位于同一个文件中

@class typesel_vc;
@interface
@property(nonatomic,strong)typesel_vc *selectVC;

@implementation 
@synthesize selectVC=selectVC_;

-(void)viewDidAppear:(BOOL)animated{
    selectVC_=[[typesel_vc alloc]init];
}

有关如何处理此错误的任何想法?

编辑:

将分配放在我调用 presentViewController 的实际行之前

selectVC_=[[typesel_vc alloc]init];
[self presentViewController:selectVC_ animated:YES completion:nil];
4

2 回答 2

3

首先,按照惯例,类名应该以大写字母开头。

其次,在未来加载控制器视图时,初始化模态视图控制器是没有意义的。您应该在演示之前执行此操作。

第三,从您发布的代码无法确定错误。使用日志语句和断点单步执行代码以查看 nil 对象出现的位置。

于 2013-02-19T18:38:49.180 回答
0

我能够通过修改这些代码行来解决这个问题:

selectVC_=[[typesel_vc alloc]init];
[self presentViewController:selectVC_ animated:YES completion:nil];

至:

selectVC_=[self.storyboard instantiateViewControllerWithIdentifier:@"typesel_vc"];
[self presentViewController:selectVC_ animated:YES completion:nil];
于 2013-02-19T19:53:36.373 回答