D言語からObjective-CとCocoaAPIを使いたい
D言語から performSelector を使用する
D言語から Objective-C NSObject performSelector 機能を使用します。
(base) hidhok % dmd -L-framework -LCocoa selector.d
(base) hidhok % ./selector
Hello World ! ... performSelector Test
(base) hidhok %
サンプルコード
Powered by Prism
/**
* selector.d Version 0.0.1 performSelector test
* dmd -L-framework -LCocoa selector.d
*/
import core.attribute : optional, selector;
import std.stdio : printf;
void main() {
Obj obj = Obj.alloc.init;
SEL method = sel_registerName("Print");
obj.perform = method;
}
extern(Objective-C)
class Obj : NSObject {
override static Obj alloc() @selector("alloc");
override Obj init() @selector("init");
void Print() @selector("Print") {
printf("Hello World ! ... performSelector Test\n");
}
}
struct objc_selector;
alias SEL = objc_selector*;
extern (C) SEL sel_registerName(in char* str);
extern(Objective-C)
extern class NSObject {
static NSObject alloc() @selector("alloc");
NSObject init() @selector("init");
SEL perform(SEL) @selector("performSelector:");
void release() @selector("release");
}
- Log
- 2024-06-08 修正しました
- 2023-01-04 upload