D/Objective-C 64bit
Jacob Carlborg via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Fri Nov 7 09:16:53 PST 2014
On 2014-11-07 17:05, Christian Schneider wrote:
> Ha, awesome! It works! I'll add this to a wiki page in the DiveFramework
> github repos.
>
> Thanks again!
No problem :). This isn't mention in the DIP since this has nothing to
do with Objective-C, it's rather plain C. This is documented here [1].
> 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.
I had no idea what I was doing when I started with this :)
> 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.
I guess you have to live using NSObject for now, until I fixed that. But
in practice NSObject is the only root class. So far I've seen one other
class, NSProxy, that doesn't inherit from NSObject.
Ok, I had a quick look at this issue. It is implemented but it's not
working. There is a test but that's only casting from a class to an
interface, not the other way around. Either there's an issue in the
druntime function "_dobjc_interface_cast" or in the compiler (most
likely in the compiler).
It looks like the casting is implemented here [2], or at least parts of it.
[1] http://dlang.org/interfaceToC.html
[2] https://github.com/jacob-carlborg/dmd/blob/d-objc/src/e2ir.c#L3843-L3854
--
/Jacob Carlborg
More information about the Digitalmars-d-announce
mailing list