C+
Packages · View as Markdown

objc

Shared Objective-C runtime for C+ on Apple: objc_msgSend shims, retain/ release, geometry value types, string bridge, and runtime class synthesis for delegates/targets.

[dependencies]
objc = "*"
stdlib = "*"
import "objc/runtime" as rt;
import "objc/bridge" as bridge;
import "stdlib/text" as text;

let cls: *u8 = rt::get_class(#str_ptr("NSString\0"));
let ns: *u8 = bridge::nsstring("hello");
let t: text::Text = bridge::to_text(ns);

Framework packages (appkit, facet_appkit, Metal bindings, …) depend on this instead of re-declaring the runtime.

Docs

Tests

cd vendor/objc && cpc test