2012-05-05 26 views
11

Tôi có một lớp học với lời gọi phương thức này trong vòng dealloc:Chúng tôi đặt mã ở đâu trong khi chuyển đổi sang ARC?

- (void)dealloc { 

    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    [super dealloc]; 
} 

tôi sẽ loại bỏ bản thân mình từ đâu đến trung tâm thông báo một khi tôi chuyển đổi các lớp để ARC? Nó có nên đi trong viewDidUnload không? Thông báo được sử dụng để nghe các sự kiện đến từ một bộ điều khiển xem phương thức, vì vậy tôi không thể đặt mã này vào chế độ xemWillDisappear.

Trả lời

19

dealloc vẫn ở trong ARC, chỉ là bạn không nên gọi số [super dealloc] nữa: trình biên dịch sẽ chèn mã cho bạn. Và tất nhiên tất cả các cuộc gọi đến release không thể được thực hiện trong dealloc (hoặc bất kỳ nơi nào khác).

- (void)dealloc { 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    // [super dealloc]; <<== Compiler inserts this for you 
} 
Các vấn đề liên quan