The objc2
project provides (mostly) autogenerated interfaces to Apple's
Objective-C frameworks like AppKit, Foundation, Metal, WebKit, and so on.
The bindings currently contain very little documentation, you should view Apple's developer documentation for detailed information about each API. (There are plans for importing that documentation here).
These crates uses objc2
to declare the external interface to the
Objective-C classes and protocols. It is highly recommended that you read
the documentation here for details on how the Objective-C interop works.
They also use block2::Block
in the public API, check out the documentation
for the block2
crate for how to call such methods using a closure.
- macOS:
10.12-15.0
- iOS/iPadOS:
10.0-18.0
(WIP) - tvOS:
10.0-18.0
(WIP) - watchOS:
5.0-11.0
(WIP) - visionOS:
1.0-2.0
(WIP)
These bindings are currently generated from the SDKs in Xcode 16.0. The Xcode version will be periodically updated.