10 个版本
0.2.2 | 2024 年 5 月 21 日 |
---|---|
0.2.0 | 2024 年 4 月 17 日 |
0.2.0-alpha.6 | 2022 年 7 月 19 日 |
0.2.0-alpha.4 | 2022 年 1 月 3 日 |
0.2.0-alpha.2 | 2021 年 11 月 22 日 |
#190 in macOS 和 iOS API
287,613 每月下载量
用于 1,111 个crate (97 直接)
3MB
59K SLoC
objc2-foundation
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:?}");
一个示例,展示如何定义自己的接口以填补自动生成接口中可能缺失的部分。