#cocoa #apple #ios #framework #macos-ios #macos #api-bindings

no-std objc2-foundation

对 Foundation 框架的绑定

10 个版本

0.2.2 2024 年 5 月 21 日
0.2.0 2024 年 4 月 17 日
0.2.0-alpha.62022 年 7 月 19 日
0.2.0-alpha.42022 年 1 月 3 日
0.2.0-alpha.22021 年 11 月 22 日

#190 in macOS 和 iOS API

Download history 33099/week @ 2024-05-02 28553/week @ 2024-05-09 44401/week @ 2024-05-16 48409/week @ 2024-05-23 57562/week @ 2024-05-30 43906/week @ 2024-06-06 46780/week @ 2024-06-13 49249/week @ 2024-06-20 58056/week @ 2024-06-27 54029/week @ 2024-07-04 64443/week @ 2024-07-11 62511/week @ 2024-07-18 75003/week @ 2024-07-25 62610/week @ 2024-08-01 69241/week @ 2024-08-08 66548/week @ 2024-08-15

287,613 每月下载量
用于 1,111 个crate (97 直接)

MIT 许可证

3MB
59K SLoC

objc2-foundation

Latest version License Documentation CI

Rust 对 Apple 框架 Foundation 的绑定。

此 README 故意保持较小,以汇总文档,有关此 crate 的更多详细信息,请参阅 Rust 文档

此 crate 是 objc2 项目 的一部分,有关相关 crate 的信息,请参阅该项目。


lib.rs:

Foundation 框架的绑定

有关更多信息,请参阅 Apple 文档关于框架 crate 的通用文档

这是 Objective-C 的 [code][tt class="src-rs">std] 等效项,包含基本数据类型、集合和操作系统服务。

Rust 与 Objective-C 类型

一些您在 Objective-C 中经常遇到的类型的快速概述以及它们的大致 Rust 等价物。

Objective-C (大约) 相当于 Rust
NSData* Arc<[u8]>
NSMutableData* Vec<u8>
NSString* Arc<str>
NSMutableString* String
NSValue* Arc<dyn Any>
NSNumber* Arc<enum{ I8(i8), U8(u8), I16(i16), U16(u16), I32(i32), U32(u32), I64(i64), U64(u64), F32(f32), F64(f64),CLong(ffi::c_long),CULong(ffi::c_ulong) }>
NSError* Arc<dyn Error+ Send + Sync>
NSException* Arc<dyn Error+ Send + Sync>
NSRange ops::Range<usize>
NSComparisonResult cmp::Ordering
NSArray<T>* Arc<[T]>
NSMutableArray<T>* Vec<T>
NSDictionary<K, V>* Arc<HashMap<K, V>>
NSMutableDictionary<K, V>* HashMap<K, V>
NSEnumerator<T>* Box<dynIterator<T>>
NSCopying* Box<dynClone>

示例

一些Foundation类型的基本使用。

$ cargo add objc2-foundation --features=all
use objc2_foundation::{ns_string, NSCopying, NSArray};

let string = ns_string!("world");
println!("hello {string}");

let array = NSArray::from_id_slice(&[string.copy()]);
println!("{array:?}");

一个示例,展示如何定义自己的接口以填补自动生成接口中可能缺失的部分。

依赖项