• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSKeyValueBindingCreation Leak
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSKeyValueBindingCreation Leak


  • Subject: Re: NSKeyValueBindingCreation Leak
  • From: Quincey Morris <email@hidden>
  • Date: Thu, 28 Jan 2010 15:04:31 -0800

On Jan 28, 2010, at 11:12, Richard Somers wrote:

> Actually that is about all there is (and it works except for the leak). I started with  Malcolm Crawford's "Graphics Bindings" example. It is the most complex programmatic example he has but just so happened to be the one that fit my need.  I got hopelessly lost trying to understand the code and just started tossing things until I got down to a level that I could start to comprehend what was going on.
>
>     http://homepage.mac.com/mmalc/CocoaExamples/controllers.html

But you did nothing like what's in that example. It defines (and exposes) 2 named bindings of the custom view object, and implements all of the behavior associated with each binding. The [bind:...] implementation is just one piece of the whole. As it happens (whether by accident or design isn't clear), you can pass a property name as the first parameter instead of a true binding name, and you'll end up with a uni-directional "binding" (as if you observed the bound-to property and updated the bound-from property whenever it changes). This may be sufficiently functional for your current project, but it's not really a binding, and it's not at all obvious that this behavior will continue to exist.

> Programmatic bindings can be simplified. For example refer to "Implementing Your Own Cocoa Bindings" by Tom Dalling.
>
>     www.tomdalling.com/cocoa/implementing-your-own-cocoa-bindings

That blog clearly states that [bind:...] is only half of the behavior of a binding.

> Any way it is true that "array" is an instance variable of the CustomObject which is bound to a NSArrayController.
>
> The purpose of the binding is to iterate over arrangedObjects like this.
>
>    for (id foo in array) {
>        // each foo do your thing
>    }

What's wrong with:

	for (id foo in arrayController.arrangedObjects)
	...

? After all, "arrangedObjects" is documented to be an array. (It's actually a kind of proxy, but it has the behavior of an array.)

> Also the "arrangedObjects.changed" observation of each foo does work.

In general, you can't observe an array (though you can observe an array property of an arbitrary object), and KVC conventions make "arrangedObjects.changed" be a reference to an array. Presumably it works because there is something special about the "arrangedObjects" proxy, but there's not guarantee of this behavior AFAIK.


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: NSKeyValueBindingCreation Leak
      • From: Richard Somers <email@hidden>
References: 
 >NSKeyValueBindingCreation Leak (From: Richard Somers <email@hidden>)
 >Re: NSKeyValueBindingCreation Leak (From: Quincey Morris <email@hidden>)
 >Re: NSKeyValueBindingCreation Leak (From: Richard Somers <email@hidden>)

  • Prev by Date: I get a "Pending Breakpoint" while running a Unit Test
  • Next by Date: NSXML and invalid UTF8 characters
  • Previous by thread: Re: NSKeyValueBindingCreation Leak
  • Next by thread: Re: NSKeyValueBindingCreation Leak
  • Index(es):
    • Date
    • Thread