Tôi cảm thấy như tôi hiểu tất cả các thành phần cơ bản của ReactiveCocoa (khái niệm), bằng cách hiểu làm thế nào để kết nối tất cả các mảnh với nhau vẫn còn một chút khó hiểu.Tại sao SignalProducer không trả lại tín hiệu?
Ví dụ, sau khi đọc về tín hiệu, tôi hoàn toàn mong đợi SignalProducer chỉ có một phương pháp start() mà trở lại một tín hiệu, mà bạn sẽ sử dụng như sau:
mySignalProducer.start().observe(myObserver)
Thay vào đó, bạn phải vượt qua một quan sát viên vào start(), và SignalProducer cuộc gọi quan sát() cho bạn:
mySignalProducer.start(myObserver)
Điều này có nghĩa rằng giao diện của SignalProducer là lớn hơn nhiều (hơn để hiểu), vì tất cả các biến thể trên quan sát() phải trùng lặp khi bắt đầu() (ví dụ startNext(), v.v.).
Tôi nghĩ có hai khả năng ở đây:
- Có nhiều lý do tại sao kỹ thuật bắt đầu() có thể không chỉ đơn giản là trả lại một tín hiệu
- tôi hiểu sai SignalProducer khái niệm, dẫn đến sự mong đợi rung rinh của giao diện của nó
Nếu 1 là trường hợp, tôi đoán rằng có điều gì đó liên quan đến quản lý bộ nhớ và các lần gỡ bỏ mà tôi chưa hiểu đầy đủ.
Tôi lo lắng hơn là 2 trường hợp. Bên trong, sự hiểu biết của tôi về SignalProducer về cơ bản là ánh xạ tới các khái niệm về một nhà máy, ví dụ .:
mySignalFactory.createSignal().observe(myObserver)
đó là lý do tôi ngạc nhiên, chúng tôi không tìm thấy một start() trả về một tín hiệu.
Tôi sẽ cực kỳ đánh giá cao nếu cộng đồng có thể làm sáng tỏ ở đây.
Cảm ơn!