You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 17中SwiftUI .searchable引发无效数值等错误,求解决方案

iOS 17模拟器SwiftUI Searchable组件报错修复方案

问题环境

  • 模拟器:iPhone 15(iOS 17)
  • Xcode:Version 15.0 (15A240d)

复现代码

import SwiftUI

struct ContentView: View {
    @State private var searchText = ""

    var body: some View {
        NavigationStack {
            Text("Searching for \(searchText)")
                .navigationTitle("Searchable Example")
        }
        .searchable(text: $searchText)
    }
}

#Preview {
    ContentView()
}

触发的错误

  • 输入搜索文本时出现:

Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem.

  • 取消搜索后再次点击搜索框时出现:

-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID

可行修复方案

1. 升级Xcode版本

Xcode 15.0初始版本存在大量模拟器相关bug,升级到15.0.1及以上稳定版本(如15.1、15.2)后,该问题通常会被官方修复。

2. 重置模拟器

打开模拟器,依次点击顶部菜单 Simulator > Reset Content and Settings...,确认重置后重新运行项目,多数情况下能解决这类模拟器交互类bug。

3. 临时替换NavigationStack为NavigationView

如果暂时无法升级Xcode,可以尝试将NavigationStack替换为NavigationView,部分用户反馈此方法能临时绕过报错:

import SwiftUI

struct ContentView: View {
    @State private var searchText = ""

    var body: some View {
        NavigationView {
            Text("Searching for \(searchText)")
                .navigationTitle("Searchable Example")
        }
        .searchable(text: $searchText)
        .navigationViewStyle(.stack)
    }
}

#Preview {
    ContentView()
}

4. 清理项目缓存

  • 使用快捷键 Command + Shift + K 清理项目构建缓存
  • 使用快捷键 Command + Option + Shift + K 清理Derived Data
  • 重启Xcode后重新构建运行项目

内容的提问来源于stack exchange,提问作者Sever

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:30:16