以下の内容はhttps://anton0825.hatenablog.com/entry/20120622/1341477763より取得しました。


initメソッド内でviewにアクセスすると無限ループになることがある

以下のようにloadViewを定義していて、かつ
initメソッド内でself.viewにアクセスしている場合、
無限ループになる。

- (void)loadView {
    [super setView:self.tempView];
    self.tempView = nil;
}

- (id)initWithView:(GMGridView *)view{
    self = [super initWithView:view];
    if (self){
        [self registGesture];
        self.tempView = view;
    }
    return self;
}

- (void)registGesture{
    if (!isGestureRegisted){
        UIPinchGestureRecognizer *recognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGestureUpdated:)];
        [self.view addGestureRecognizer:recognizer];
        isGestureRegisted = YES;
    }
}

理由はloadViewメソッド内でviewにインスタンスを渡そうとしているが、viewに代入するtempViewは
self.tempView = view;
が実行された後でないとnilであるため。
そもそもinitの中でviewにアクセスしてはいけない。
viewの設定はviewDidLoad内でやるべき。
参考:http://stackoverflow.com/questions/4986098/viewdidload-infinite-loop-issue-ios




以上の内容はhttps://anton0825.hatenablog.com/entry/20120622/1341477763より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14