(rontolisp) docs
← 関数

objc パッケージの関数

objc パッケージは Foreign Function API で Objective-C ランタイムと AppKit をバインドします。リフレクションを使わないため、java: と違って java -jar だけでなくネイティブバイナリでも動作します。macOS のインタプリタ専用であり (コンパイル済み .class や .wasm は拒否します)、Common Lisp の一部ではありません。関数は objc: 修飾子付きで参照します。各名前は個別のページにリンクしています。マーシャリング、スレッド、所有権、ネイティブバイナリの形テーブルについては macOS GUI ガイドを参照してください。

関数例結果
objc:class(objc:class "NSWindow")クラス (#<objc NSWindow>)
objc:send(objc:send (objc:string "hi") "length")セレクタの宣言型に従ってマーシャリングされた結果
objc:define-class(objc:define-class "Target" "NSObject" (list (list "invoke:" fn)))メソッドが Lisp 関数であるクラス
objc:on-main(objc:on-main (lambda () ...))メインスレッドで計算された関数の値
objc:string(objc:string "hi")NSString
objc:data(objc:data buffer)バッファのバイト列を持つ NSMutableData
objc:bytes(objc:bytes data)NSData のバイト列 (パックされた (unsigned-byte 8) ベクタ)
objc:address(objc:address obj)オブジェクトのアドレス (整数)
objc:objectp(objc:objectp x)Objective-C オブジェクトなら t