objective-c 中的对象初始化

object init in objective-c

#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代码=2

我的代码有什么问题?谢谢

正如@HotLicks 在他的评论中所述,问题是无限递归。如果您是编程新手,我建议您阅读 this article on recursion。本质上,递归就是方法调用自身。在您的代码中,当您调用 [[Page alloc]init] 时,它会无限调用 init 随后导致堆栈溢出。