FROM : Ken Thomases
DATE : Wed May 21 22:57:20 2008
On May 21, 2008, at 2:55 PM, Mike Abdullah wrote:
> On 21 May 2008, at 19:51, Gordon Apple wrote:
>
>> Not having access to the innards of KVO, I wonder how dymanic the
>> process is. For example, my inspector bindings are through an object
>> controller which binds through MSApp.mainWindow which seems to
>> successfully
>> switch its focus to a new main window with no problems. This, to me,
>> indicates that the process operates dynamically according to the
>> path,
>> rather than statically binding when it is set up.
Correct, except it's not looking up every element along the key path
every time it needs to access it. It only needs to update itself when
one of the objects along the key path reports that the relevant
property has been changed.
>> So my new question is whether or not I can successfully observe a
>> property that does not exist at registration time, and then have it
>> observe
>> properly when the path is created. E.g., register to observe
>> xxx.shadow.angle when shadow does not exist, then add the shadow
>> object and
>> have xxx.shadow.angle be observed properly.
>
> As long as xxx returns nil for -valueForKey:@"shadow" initially, and
> then puts out proper KVO notifications when a shadow comes into
> being, this works just fine.
Search the Foundation Release Notes <http://developer.apple.com/releasenotes/Cocoa/Foundation.html#KVCKVO
> for "Bug Fix in KVO's Dependency Mechanism" for a caveat to this
pre-Leopard. Understanding the exact meaning of that caveat is
something else entirely. ;P
Cheers,
Ken
DATE : Wed May 21 22:57:20 2008
On May 21, 2008, at 2:55 PM, Mike Abdullah wrote:
> On 21 May 2008, at 19:51, Gordon Apple wrote:
>
>> Not having access to the innards of KVO, I wonder how dymanic the
>> process is. For example, my inspector bindings are through an object
>> controller which binds through MSApp.mainWindow which seems to
>> successfully
>> switch its focus to a new main window with no problems. This, to me,
>> indicates that the process operates dynamically according to the
>> path,
>> rather than statically binding when it is set up.
Correct, except it's not looking up every element along the key path
every time it needs to access it. It only needs to update itself when
one of the objects along the key path reports that the relevant
property has been changed.
>> So my new question is whether or not I can successfully observe a
>> property that does not exist at registration time, and then have it
>> observe
>> properly when the path is created. E.g., register to observe
>> xxx.shadow.angle when shadow does not exist, then add the shadow
>> object and
>> have xxx.shadow.angle be observed properly.
>
> As long as xxx returns nil for -valueForKey:@"shadow" initially, and
> then puts out proper KVO notifications when a shadow comes into
> being, this works just fine.
Search the Foundation Release Notes <http://developer.apple.com/releasenotes/Cocoa/Foundation.html#KVCKVO
> for "Bug Fix in KVO's Dependency Mechanism" for a caveat to this
pre-Leopard. Understanding the exact meaning of that caveat is
something else entirely. ;P
Cheers,
Ken
| Related mails | Author | Date |
|---|---|---|
| Gordon Apple | May 19, 21:02 | |
| Ken Thomases | May 20, 00:59 | |
| Gordon Apple | May 21, 20:51 | |
| Mike Abdullah | May 21, 21:55 | |
| Ken Thomases | May 21, 22:57 | |
| Gordon Apple | May 21, 23:15 | |
| Mike Abdullah | May 21, 23:55 |






Cocoa mail archive

