objective-c中的object init

时间:2015-03-08 03:19:58

标签: objective-c object init

#import "Page.h"

@implementation Page

-(instancetype)init{

    self = [super init];

    if (self) {
        self.firstPage =[[Page alloc]init];
        self.choiceA = [[Page alloc]init];
        self.choiceB = [[Page alloc]init];

    }
    return self;
}


@end

我是Objective-C的新手。

错误:exc_bad_access code = 2

我的代码出了什么问题?感谢。

1 个答案:

答案 0 :(得分:1)

@HotLicks在评论中指出,问题是无限递归。如果您不熟悉编程,我建议您阅读this article on recursion。本质上,递归是一个方法调用自身的时候。在您致电[[Page alloc]init]的代码中,它会随时无限地调用init,从而导致堆栈溢出。