Tôi có ứng dụng IPhone sử dụng dịch vụ web để nhận dữ liệu từ máy chủ. Tôi đang đặt mỗi cuộc gọi đến webservice trong một lớp con NSOperation để nó có thể được tạo luồng. Câu hỏi của tôi là, cách được khuyến nghị để trả lại thông tin từ một lớp con NSOperation đã hoàn thành là gì. Tôi hiện đang gửi NSNotification ở cuối phương thức chính và bất kỳ mã nào đang chờ NSOperation hoàn tất, đăng ký thông báo. Và sau đó tôi sẽ sử dụng một phần đối tượng của NSNotificationWithName: Object: để truyền thông tin trở lại từ hoạt động.Ca cao - Trả lại thông tin từ NSOperation
Tôi không chắc chắn có cách nào tốt hơn để thực hiện việc này hay không. Tôi đã nghe nói về Key Value Coding và sau đó tôi có thể sử dụng Key Value Observing để phát hiện khi thuộc tính isFinished cho hoạt động được thay đổi, nhưng tôi không chắc thực hành tốt nhất là gì.
Tôi cũng đang cố gắng đảm bảo rằng ứng dụng của mình là an toàn, mà tôi cho rằng sẽ không là vấn đề miễn là thông báo của tôi được gửi ở cuối phương thức chính, do đó đối tượng trong thông báo sẽ không còn được sử dụng trong chuỗi vì nó sẽ kết thúc.
Cuối cùng, tôi kêu gọi các thông báo như sau:
[[NSNotificationCenter defaultCenter] performSelectorOnMainThread:@selector(postNotification:) withObject:[NSNotification notificationWithName:@"notificationName" object:dataObject] waitUntilDone:NO];
tài liệu là bạn có thể thích nó. –
frank