Tôi muốn nghe tất cả các thông báo được gửi đến defaultCenter. Cả công khai và riêng tư. Có ai biết làm thế nào tôi có thể làm điều này?Tôi làm cách nào để nghe tất cả các thông báo được gửi tới Trung tâm mặc định của NSNotificationCenter của iOS?
Trả lời
Sử dụng phương pháp addObserverForName:object:queue:usingBlock:
HOẶC addObserver:selector:name:object:
của NSNotificationCenter và chuyển số không cho tên và đối tượng.
Ví dụ
Các mã sau đây nên thực hiện công việc:
- (void)dumpNotifications {
NSNotificationCenter *notifyCenter = [NSNotificationCenter defaultCenter];
[notifyCenter addObserverForName:nil
object:nil
queue:nil
usingBlock:^(NSNotification *notification){
// Explore notification
NSLog(@"Notification found with:"
"\r\n name: %@"
"\r\n object: %@"
"\r\n userInfo: %@",
[notification name],
[notification object],
[notification userInfo]);
}];
}
Documents
Dưới đây là các tài liệu trên addObserverForName:object:queue:usingBlock:
. Cụ thể, hãy xem các thông số tên và obj.
addObserverForName: đối tượng: hàng đợi: usingBlock:
Thêm một mục vào bảng công văn của receiver với một hàng đợi thông báo và một khối để thêm vào hàng đợi, và tiêu chuẩn bắt buộc: tên thông báo và người gửi.
- (id)addObserverForName:(NSString *)name object:(id)obj queue:(NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *))block
thông số
tên
Tên của thông báo mà phải đăng ký người quan sát; rằng là, chỉ những thông báo có tên này được sử dụng để thêm khối vào hàng đợi hoạt động . Nếu bạn vượt qua số không, trung tâm thông báo không sử dụng tên của thông báo để quyết định có thêm khối vào hàng đợi hoạt động hay không.
obj
Đối tượng có thông báo nào bạn muốn thêm khối vào hàng đợi hoạt động. Nếu bạn vượt qua số không, trung tâm thông báo không sử dụng người gửi thông báo để quyết định có thêm khối vào hàng đợi hoạt động hay không.
đợi
Hàng đợi hoạt động mà khối nên được bổ sung. Nếu bạn vượt qua nil, khối sẽ chạy đồng bộ trên chuỗi đăng.
khối
Khối để được thực thi khi nhận được thông báo. Khối được sao chép bởi trung tâm thông báo và (bản sao) được giữ cho đến khi đăng ký người quan sát bị xóa.Khối mất một đối số:
thông báo
Các thông báo.
- 1. Gửi thông báo tới trung tâm thông báo Mountain lion
- 2. Tôi có thể xóa các thông báo ứng dụng của mình khỏi Trung tâm thông báo của iOS 5 không?
- 3. Đặt mặc định ứng dụng cho Trung tâm thông báo iOS 5
- 4. Nhắn tin qua đám mây của Google gửi thông báo tới tất cả các thiết bị
- 5. làm thế nào để căn chỉnh hình ảnh của tôi ở trung tâm IOS ngang
- 6. Làm việc với Trung tâm thông báo của Mountain Lion bằng cách sử dụng PyObjC
- 7. Tiện ích dòng lệnh để gửi thông báo đến Trung tâm thông báo trong Mountain Lion
- 8. Làm cách nào để ứng dụng web gửi thông báo đẩy tới thiết bị iOS?
- 9. Tôi làm cách nào để được thông báo về thông báo biểu ngữ trong iOS?
- 10. iOS5: cách xác định xem Trung tâm thông báo cho ứng dụng có được BẬT/TẮT
- 11. Trung tâm thông báo - thông báo không xuất hiện trong trung tâm thông báo khi họ nhận được trên ứng dụng đang hoạt động
- 12. Làm cách nào để xóa thông báo đẩy iOS ưu tiên cho ứng dụng của tôi?
- 13. cách xem trung tâm thông báo trên trình mô phỏng iOS?
- 14. Cách gửi ảnh cho ứng dụng của tôi từ ứng dụng Máy ảnh iOS mặc định?
- 15. Cách đọc tất cả các thông báo sắp tới trong android
- 16. Làm cách nào để tắt hiển thị Trung tâm thông báo khi kéo xuống màn hình?
- 17. phát hiện cài đặt trung tâm thông báo
- 18. Làm cách nào để đặt Margin mặc định cho tất cả các điều khiển trên tất cả các cửa sổ WPF của tôi?
- 19. Thông báo đẩy SignalR tới tất cả các phiên bản trình duyệt của người dùng được xác thực duy nhất
- 20. Làm cách nào để đảm bảo ứng dụng iPhone của tôi sử dụng hộp cát của Trung tâm trò chơi?
- 21. Làm cách nào để nhận thông báo đẩy từ tài khoản Gmail của tôi?
- 22. Tính trung tâm của SVG arc
- 23. Cách đặt trung tâm xoay của MKAnnotationView
- 24. Làm cách nào để có được trung bình (trung bình) của các cột được chọn
- 25. Làm cách nào để tôi có thể được thông báo khi công việc dispatch_async hoàn tất?
- 26. Tắt Cử chỉ Trung tâm thông báo iOS 5 trong Ứng dụng
- 27. Sử dụng Trung tâm thông báo Azure với Phonegap
- 28. Làm cách nào để gửi thông báo đẩy bằng Erlang?
- 29. Tìm trung tâm của cây
- 30. Tôi làm cách nào để tạm dừng tất cả các thông báo bằng âm thanh trên iPad?
Câu trả lời hay. Tuy nhiên, đối với bất kỳ ai có khả năng sao chép/dán giải pháp, có một vài loại. "notifyCenter" nên là một đối tượng, vì vậy nó phải là "* notifyCenter". Và tuyên bố NSLog thiếu biểu tượng '@' ngay từ đầu. – Keller
@Keller - cảm ơn nhận xét. Tôi đã sửa đổi câu trả lời của tôi để bao gồm các bản sửa lỗi của bạn. – Sam
Không sao cả. Trớ trêu thay, tôi chỉ nhận thấy tôi đã sai chính tả "lỗi chính tả" trong bình luận trước của tôi; – Keller