Hi everyone!
I'm the Summer of Code student working on Key Value Observing and
Bindings for GNUstep.
As things currently stand, I have finished the implementation of
KeyValueCoding (which I believe Nicola has just committed) and am
about 80 to 90% done with KeyValueObserving.
When I started working, KeyValueObserving was already partially
implemented. I have filled in most of the holes, including
implementing the willChange... and didChange... methods to properly
store information about the change and send the proper change
dictionary in the notification, updating KVO to properly obey
+setKeys:triggerChangeNotificationsForDependentKey:. I have also
implemented the mutableSetValueForKey: and mutableArrayValueForKey:
methods of KVC to return appropriate collection proxy objects and
updated them to automatically do KVO notifying, according to Apple's
documentation.
As I work, I've been taking a close look at Apple's implementations
with GDB and modeling my own implementation accordingly. For example,
I found that for mutableArrayValueForKey:, Apple uses special proxy
objects such as NSKeyValueFastMutableArray,
NSKeyValueSlowMutableArray, and NSKeyValueIvarMutableArray depending
on the circumstance, all of which inherit from NSKeyValueMutableArray.
My remaining work on KVO is essentially to finish up creating the
NSKeyValueObservationForwarder chain so it can notify observers of
key paths and look at performance. After this, I'll begin working on
implementing Bindings.
Chris Farber
_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep