一个非常奇怪的问题。我必须在- (void)viewDidLoad中初始化一个数组。

数组prjMemberArray被声明为属性:

@property(nonatomic, retain) NSMutableArray* prjMemberArray;


如果我用这个

prjMemberArray = [[NSMutableArray alloc] initWithObjects:@"someone",@"someone",@"someone" ,nil];


release中调用viewDidUnload

然后在加载视图时,它将立即崩溃,但是当我使用此命令时:

prjMemberArray = [[NSMutableArray alloc] initWithCapacity:0];

[prjMemberArray addObject:@"someone"];


它运作良好。谁能解释一下?我使用情节提要来演示当前的视图控制器,如下所示:

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
prj_Detail = [sb instantiateViewControllerWithIdentifier:@"ProjectDetailVC"];

[self presentModalViewController:prj_Detail animated:YES];


其中prjMemberArrayprj_Detail的属性。

最佳答案

您确定没有拼写错误的项目吗?例如在崩溃的情况下是"someone"而不是@"someone"

关于objective-c - 使用initWithObjects:会导致崩溃,但initWithCapacity:后跟addObject:不会导致崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8483833/

10-12 23:49