Re: Translating to Swift
Re: Translating to Swift
- Subject: Re: Translating to Swift
- From: Jean-Daniel Dupas <email@hidden>
- Date: Fri, 15 Aug 2014 00:22:39 +0200
In fact, this is actually exactly equivalent to you sample. Global and class variable initialization on Swift is performed lazily and is implemented using dispatch_once().
And after a second thought, I think that it should be 'let' and not 'var', and you don't want the pointer to be changed after initialization.
I don't remember if static class variable are supported yet, but if they are, you can also use one instead of a global.
Le 14 août 2014 à 20:44, Gerriet M. Denkmann <email@hidden> a écrit :
>
>
> On 13 Aug 2014, at 17:35, Jean-Daniel Dupas <email@hidden> wrote:
>
>> At global scope
>>
>> var sharedThing : Thing = Thing();
>>
>
> Excellent. Just what I needed.
>
> But: is this thread-safe? What if several threads are trying to use the sharedThing? The Swift book doesn't mention the word "thread".
>
> Kind regards,
>
> Gerriet.
>
>> Le 13 août 2014 à 12:30, Gerriet M. Denkmann <email@hidden> a écrit :
>>
>>>
>>> How could I translate this to Swift?
>>>
>>> + (Thing *)sharedThing
>>> {
>>> static Thing *commonThing;
>>> static dispatch_once_t justOnce;
>>> dispatch_once( &justOnce, ^void
>>> {
>>> commonThing = [ [ Thing alloc ] init ];
>>> }
>>> );
>>>
>>> return commonThing;
>>> }
>>>
>>> Gerriet.
>>>
>>> _______________________________________________
>>>
>>> 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
>>
>
_______________________________________________
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