• 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
Using Bindings with a Slow-Setting Model
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Using Bindings with a Slow-Setting Model


  • Subject: Using Bindings with a Slow-Setting Model
  • From: Daniel Jalkut <email@hidden>
  • Date: Thu, 22 Sep 2005 18:29:52 -0400


I want to use bindings to keep a user interface in sync with a network-based model. To that end I've wrapped the network model with an Objective-C object, whose keyed values I bind to my interface. The problem is that manipulations to the network model are non- blocking. A "set" on the wrapper model goes out to the network while execution continues in the client. When the network-based model acknowledges the set has completed, it returns with a message indicating that value has changed, and the wrapper's instance variable is updated to reflect the change.


This type of scenario seems extremely well suited to one of the "classic" controller arrangements, where the set methods all operate directly on the model, depending on subsequent notifications from the model to trigger triggering changes in the UI.

It doesn't seem so well-suited to bindings, because there is an assumption (or am I wrong?) that setting a property on a model key- value compliant object is a relatively atomic operation. As it happens, it sort of "just works" right now, though I believe I'm abusing the philosophy of bindings somewhat. When my wrapper object's set: methods are called, nothing actually changes. Later, when the network object acknowledges the change, I do a manual "willChange" and "didChange" on the appropriate keyed-value, triggering a change in the UI. What bothers me slightly about this arrangement is that, for every set, I'm causing two "changed" notices - the first when there hasn't actually been any change in the value, and the second when the network finally comes around. It's unsettling to me that I have to essentially maintain two setter methods per keyed value: one that triggers the change, and one that confirms the change.

Am I fighting to hard to use bindings in an inappropriate setting? Has anybody else dealt with an issue like this? Is there some appropriate way to use the "willChange" and "didChange" methods, stretching them out over an unpredictable amount of time? My particular concern is for a network based application, though of course there are other scenarios where setting might not be as atomic as bindings is accustomed to.

Thanks for the advice,
Daniel

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Using Bindings with a Slow-Setting Model
      • From: Daniel Jalkut <email@hidden>
  • Prev by Date: cocoa scripting: selection
  • Next by Date: Re: Retrofitting CoreData
  • Previous by thread: Re: cocoa scripting: selection
  • Next by thread: Re: Using Bindings with a Slow-Setting Model
  • Index(es):
    • Date
    • Thread