Can't get Objective-C class method to compile.
    Jeremie Pelletier via Digitalmars-d 
    digitalmars-d at puremagic.com
       
    Wed Dec 30 19:43:58 PST 2015
    
    
  
Hello, I'm trying out the new interface to Objective-C and I 
can't get this to compile:
     module main;
     extern (Objective-C) {
         interface NSObject {
             void release() @selector("release");
         }
         interface NSString : NSObject {
             const(char)* UTF8String() @selector("UTF8String");
         }
         interface NSProcessInfo : NSObject {
             static NSProcessInfo processInfo() 
@selector("processInfo");
             NSString operatingSystemVersionString()
                 @selector("operatingSystemVersionString");
         }
     }
     void main() {
         import std.stdio;
         auto str = 
NSProcessInfo.processInfo.operatingSystemVersionString;
         writeln(str.UTF8String);
         str.release();
     }
I used the following command line:
> dmd main.d -L-framework -LFoundation
I'm running the latest dmd (2.069.2) and it exits after printing 
this message:
> Assertion failed: (ethis), function 
> objc_callfunc_setupMethodCall, file objc_glue.c, line 276.
> Abort trap: 6
This is from the class method call to NSProcessInfo.processInfo.
I've tried without the selector but get a linker error on 
__D4main13NSProcessInfo11processInfoYZC4main13NSProcessInfo.
I'm not sure if it is a bug or if I'm not using it correctly so 
I'm asking here before opening a bug report :)
    
    
More information about the Digitalmars-d
mailing list