All sounds nice, except for the fact that the parameters are being changed 
"behind the scenes" via the binding system. So I think I may have to implement 
locking on every (explicitly implemented) get/set method. That was what I had 
been rather hoping to avoid, but it sounds from what people are saying as if 
that's what I may have to do...


On 3 Sep 2013, at 13:54, Robert Vojta wrote:

> On Tue, Sep 3, 2013 at 2:39 PM, Jonathan Taylor 
> <jonathan.tay...@glasgow.ac.uk> wrote:
>  
> The primary instance of the object (call it MyParameters) is bound to UI 
> elements. Changes to the UI will change the values of its properties 
> (int/bool/double). These changes will take place on the main thread.
> 
> 1. Create MyParameters instance on some object on the main thread and call it 
> mainParameters for example.
> 
> 2. All values are UI related, so, fill them on the main thread. But lock your 
> mainParameters object before. So, on the main thread do this ...
> 
> @synchronized( myObjectHoldingMyParameters.mainParameters ) {
>   myObjectHoldingMyParameters.mainParameters.X = X;
>   ...
> }
> 
> 3. When you do want a copy on any other thread, do this ...
> 
> MyParamaters *paramsCopy;
> @synchronized( myObjectHoldingMyParameters.mainParameters ) {
>   paramsCopy = [myObjectHoldingMyParameters.mainParameters copy];
> }
> 
> ... and implement deep copy without locking. It's done via @synchronized.
> 
> 

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to