objc2
objc2 copied to clipboard
Bindings to Apple's frameworks in Rust
Part of https://github.com/madsmtm/objc2/issues/32. Add a tutorial to `icrate`, to have a place where we can introduce new concepts like `Id` to the user. A "howto" on converting Objective-C code on...
Builds upon https://github.com/madsmtm/objc2/pull/516. We now use `&(impl MyProtocol + Message)` instead of `&ProtocolObject` as parameters to functions, this allows users to pass in their objects to these functions much more...
List of improvements that would bring us closer to feature-parity with Swift: - [ ] The ability to safely call superclass methods inside `declare_class!` (though it's probably not safe to...
Maybe we should reconsider whether it makes sense to keep those to separate? It would make it much easier for the user if they were merged. An argument for keeping...
Add the equivalent of https://github.com/madsmtm/objc2/pull/276 and https://github.com/madsmtm/objc2/pull/277 to `declare_class!`. Effectively the implementation is: ```rust // Result -> Bool match res { Ok(()) => Bool::YES, Err(err) => { // Intentionally not...
`NSCopying` [states](https://developer.apple.com/documentation/foundation/nscopying) that there are a few different ways to implement it. One of them is by invoking `[super copy]` and setting the instance variables afterwards - this should somehow...
This more closely matches the terminology used in the Rust reference. E.g. in [the reference docs on associated items](https://doc.rust-lang.org/reference/items/associated-items.html), these two words are used with different meanings: > Every associated...
Implementing `ClassType` in `declare_class!` is `unsafe` because we need the user to uphold a few safety guarantees, and that was just the most convenient place to put the `unsafe` keyword....
Something I've been thinking about lately is that it might be interesting to start seriously considering Swift interop, or at the very least keep that possibility at the forefront with...
Our main thread support in `MainThreadMarker` and `MainThreadBound` is still a little akward to use, and is missing some functionality that would be nice. TODO: - [x] Automatically add marker...