【发布时间】:2021-11-19 07:06:18
【问题描述】:
从brandonhamilton/image-capture-core-rs 的ICCameraDevice.mediaFiles() 我可以得到NSArray::count()(来自core-foundation-rs):
let cam_media_files = camera_device.mediaFiles();
println!(
NSArray::count(cam_media_files) // 123
);
但是你如何迭代这个Object?
我尝试了几件事:
// for media_file in NSArray::array(nil, cam_media_files) {
// for media_file in NSArray::arrayWithObject(nil, cam_media_files) {
for media_file in cam_media_files {
println!(" ???????? media_file: {:?}", media_file);
}
所有结果都是这样的:
error[E0277]: `*mut Object` is not an iterator
--> src/image_capture_core_mod.rs:86:31
|
86 | for media_file in cam_media_files {
| ^^^^^^^^^^^^^^^ `*mut Object` is not an iterator
|
= help: the trait `Iterator` is not implemented for `*mut Object`
= note: required because of the requirements on the impl of `IntoIterator` for `*mut Object`
= note: required by `into_iter`
这里没有太多的工作: https://docs.rs/cocoa/0.24.0/cocoa/foundation/trait.NSArray.html
我错过了什么?
谢谢?????????♂️
【问题讨论】:
-
objective-c 标签是干什么用的?
-
@ElTomato 这是 Rust 调用 ObjC,一个 C 桥:github.com/brandonhamilton/image-capture-core-rs/blob/master/…
-
我猜docs.rs/cocoa/0.24.0/cocoa/foundation/…,你的问题很不清楚,并且箱子里有零文档
标签: objective-c cocoa rust iterator nsarray