EnthusiasticCode/ReactiveCocoa — pull request #2 by thenikso (2012-12-06 12:02:50+00:00)
Title: Alternative two-way binding implementation with versioning

***DRAFT, NOT READY FOR MERGE***

As an alternative implementation discussed in github/ReactiveCocoa#163 here is a (very very) draft implementation that uses signals (as originally proposed) and versioning instead of value stashing.

Brief description of how versioning is used:

- On KVO notification to A, if A.version >= B.version
- Increment A.version
- Send the update to B
- On KVO notification to A, if A.expectedBounces > 0
- Decrement A.expectedBounces
- Increment A.version
- On A modifying it's value, increment A.expectedBounces

TODO:

- Fix retain cycles
- Fix version comparison for wrap around
- Remove duplicate code
- more...