REGISTER_CUSTOM_CLASS.call_once(|| { // The runtime will call this method, so it has to be implemented extern"C-unwind"fn custom_obj_class_initialize(_this: &AnyClass, _cmd: Sel) {}
letmut builder = ClassBuilder::root(
&c("CustomObject"),
custom_obj_class_initialize asextern"C-unwind"fn(_, _),
)
.unwrap(); let proto = custom_protocol();
extern"C-unwind"fn custom_obj_set_bar(this: &AnyObject, _cmd: Sel, bar: u32) { let ivar = this.class().instance_variable(&c("_bar")).unwrap(); unsafe { *ivar.load_ptr::<u32>(this) = bar }
}
unsafe { // On GNUStep 2.0, it is required to have `dealloc` methods for some reason if cfg!(all(feature = "gnustep-2-0", not(feature = "gnustep-2-1"))) { unsafeextern"C-unwind"fn forward_to_dealloc(this: *mut AnyObject, _cmd: Sel) { unsafe { msg_send![this, dealloc] }
}
let release: unsafeextern"C-unwind"fn(_, _) = forward_to_dealloc;
builder.add_method(sel!(release), release);
let release: unsafeextern"C-unwind"fn(_, _) = custom_obj_release;
builder.add_method(sel!(dealloc), release);
} else { let release: unsafeextern"C-unwind"fn(_, _) = custom_obj_release;
builder.add_method(sel!(release), release);
}
let set_foo: extern"C-unwind"fn(_, _, _) = custom_obj_set_foo;
builder.add_method(sel!(setFoo:), set_foo); let get_foo: extern"C-unwind"fn(_, _) -> _ = custom_obj_get_foo;
builder.add_method(sel!(foo), get_foo); let get_foo_reference: extern"C-unwind"fn(_, _) -> _ = custom_obj_get_foo_reference;
builder.add_method(sel!(fooReference), get_foo_reference); let get_struct: extern"C-unwind"fn(_, _) -> CustomStruct = custom_obj_get_struct;
builder.add_method(sel!(customStruct), get_struct); let class_method: extern"C-unwind"fn(_, _) -> _ = custom_obj_class_method;
builder.add_class_method(sel!(classFoo), class_method);
let get_nsinteger: extern"C-unwind"fn(_, _) -> _ = get_nsinteger;
builder.add_method(sel!(getNSInteger), get_nsinteger);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.