Vision

Steven Schveighoffer via Digitalmars-d digitalmars-d at puremagic.com
Fri Oct 23 11:44:47 PDT 2015


On 10/23/15 11:53 AM, Kagamin wrote:
> On Friday, 23 October 2015 at 12:44:03 UTC, Steven Schveighoffer wrote:
>> The example looks terrible -- objc_lookUpClass which only gets a class
>> that can alloc an NSString? Can this be done better? An objective-c
>> developer that is not too familiar with D would be very disappointed
>> in this binding.
>
> A little of massage and you get:
>
> struct ClassStorage(C)
> {
>    alias lookUp this;
>    C lookUp() immutable
>    {
>      return cast(C)objc_lookUpClass(C.stringof);
>    }
> }
>
> immutable ClassStorage!NSString cNSString;
>
> C alloc(C)()
> {
>    immutable ClassStorage!C c;
>    return c.alloc();
> }
>
> void main()
> {
>    auto str = cNSString.alloc.initWithUTF8String("Hello World!");
>    auto str1 = alloc!NSString.initWithUTF8String("Hello World!");
>    NSLog(str);
>    str.release();
>    str1.release();
> }

I think this would look better as the official example!

Question is, what does objc_lookUpClass actually return? I'm assuming 
id. I still don't know what that is in D, void*?

-Steve


More information about the Digitalmars-d mailing list