2012-03-05 24 views
6

Trong thập niên appdelegate didFinishLaunchingWithOptions:Nếu thêm người quan sát cho một thông báo trong AppDelegate, tôi có cần phải xóa nó đi không?

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(contextChanged:) 
             name:NSManagedObjectContextDidSaveNotification 
             object:nil]; 

Đây là vì vậy tôi có thể kết hợp thay đổi đối với dữ liệu từ các chủ đề khác.

Câu hỏi: Tôi có cần phải bận tâm xóa người nghe này trong applicationWillResignActive hoặc applicationWillTerminate? Nó không có vẻ như có một điểm. Tôi đoán tôi đang hỏi liệu có bình thường không khi nghe những người nghe như thế này trong vòng lặp chính mà không bao giờ bị loại bỏ.

Trả lời

7

Bạn không bao giờ có thể xóa nó, nhưng nếu ứng dụng của bạn nhận được thông báo (nó sẽ không xảy ra trong trường hợp này) trong khi nó ở chế độ nền, thông báo sẽ được xếp hàng và gửi đến ứng dụng khi nó xuất hiện trở lại (nếu ứng dụng không bị giết).

Nếu không muốn thông báo xảy ra khi ứng dụng của bạn ở chế độ nền được phân phối khi nó xuất hiện, bạn có thể xóa người nghe theo các phương pháp bạn đã chỉ ra.

Trong trường hợp này, thực ra, điều đó không quan trọng.

Các vấn đề liên quan