From b22eaf97159269a55eb9c7b55f3a90a4fffa6112 Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 12 Oct 2026 12:32:36 +0000 Subject: [PATCH] fix: retain typed Vision compute device references --- src-tauri/src/ocr/tests/diagnose-vision.swift | 7 +++++-- src-tauri/src/ocr/vision.rs | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src-tauri/src/ocr/tests/diagnose-vision.swift b/src-tauri/src/ocr/tests/diagnose-vision.swift index 329414c..1ed2048 100644 --- a/src-tauri/src/ocr/tests/diagnose-vision.swift +++ b/src-tauri/src/ocr/tests/diagnose-vision.swift @@ -13,10 +13,13 @@ print("Vision supported revisions: \(VNRecognizeTextRequest.supportedRevisions)" func assignCPU(_ request: VNRecognizeTextRequest) throws { if #available(macOS 14.0, *) { - let stages = try request.supportedComputeStageDevices() + let stages = try request.supportedComputeStageDevices for (stage, devices) in stages { print("compute stage \(stage): \(devices)") - if let cpu = devices.first(where: { $0 is MLCPUComputeDevice }) { + if let cpu = devices.first(where: { + if case .cpu(_) = $0 { return true } + return false + }) { request.setComputeDevice(cpu, for: stage) } } diff --git a/src-tauri/src/ocr/vision.rs b/src-tauri/src/ocr/vision.rs index b592b8b..7809938 100644 --- a/src-tauri/src/ocr/vision.rs +++ b/src-tauri/src/ocr/vision.rs @@ -129,12 +129,12 @@ fn configure_cpu(request: &VNRecognizeTextRequest) -> Result<(), String> { .map_err(|error| format!("读取 OCR 计算设备失败: {error}"))?; let mut assigned = false; for stage in stages.allKeys().iter() { - if let Some(devices) = stages.objectForKey(stage) { + if let Some(devices) = stages.objectForKey(&stage) { if let Some(cpu) = devices .iter() .find(|device| device.isKindOfClass(MLCPUComputeDevice::class())) { - request.setComputeDevice_forComputeStage(Some(cpu), stage); + request.setComputeDevice_forComputeStage(Some(&cpu), &stage); assigned = true; } }