D/Objective-C 64bit

Christian Schneider via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Nov 7 08:05:55 PST 2014


> Now I know what the problem is. In D, module variables are by 
> default in TLS (thread local storage). To make it refer to a 
> global C variable, use __gshared:
>
> extern (C) extern __gshared NSString 
> NSApplicationDidHideNotification;
>
> Sorry, I completely forgot about that.

Ha, awesome! It works! I'll add this to a wiki page in the 
DiveFramework github repos.

Thanks again!

Oh, and btw, I was briefly looking into the DMD source for trying 
to fix myself the issue with the protocol to class instance cast 
(trying to be useful), but I am seriously completely not hardcore 
enough of digging anything in there, lol. Anyhow, if you got a 
hint, let me know. It's not just in the example discussed in my 
other posts, I found it to be an issue in other places as well, 
as often framework classes return id / ObjcObject instead of a 
further typed instance. I don't remember where exactly I had a 
problem, but I remember I used NSObject instead of ObjcObject in 
these places, which of course is not the way to go.

Have a nice weekend!


More information about the Digitalmars-d-announce mailing list