SwiftUI 劝退实录:AI 都无能为力,你敢用吗?

我完全不理解为什么 SwiftUI 要支持这种写法:让一个 view 去调用自己根本不存在的属性,还能"生效"。比如 .navigationTitle ------本来应该是页面级别的东西,结果你随便在一个 TextButton 上写,它都能改导航栏标题。 但哪个生效?完全不确定。

我写了段hello world 级别的代码,任何子 view 都能 .navigationTitle("xxx"),你猜猜最终会显示什么?

我问了好几个 AI,全军覆没,一个都没答对。

css 复制代码
struct AddView: View {
    var body: some View {
        ScrollView{
            VStack{
                Button(action: {}, label: {
                    Text("button")
                        .foregroundColor(.white)
                        .frame(height: 30)
                        .frame(maxWidth: .infinity)
                        .background(Color.accentColor)
                        .cornerRadius(10)
                        .navigationTitle("title1")
                })
                .navigationTitle("title2")
                
                Text("text")
                    .navigationTitle("title3")
            }.padding(15)
            .navigationTitle("title4")
        }.navigationTitle("title5")
    }
}
#Preview {
    NavigationStack{
        AddView()
    }
}

好了,揭示结果

最终的 title 如图所示,显示的是 title1

更离谱的是,这还不是个例。不光是 .navigationTitle,很多 SwiftUI 的 写法 都存在类似问题:表面上修饰局部,其实是全局冒泡,导致歧义、结果不直观,维护起来还埋坑。

这种设计到底是为了所谓的"灵活",还是偷懒的语法糖?无论如何,带来的体验只有一个词能形容:迷惑。

或许有人会说:"你别这样写不就行了?" 但问题是 ------ SwiftUI 本来就允许这样写。项目一旦复杂起来,或者多人合作,甚至是接手别人代码的时候,你根本无法确保没人这么用。一旦遇到问题,调试起来极其困难。

而且最最最大的问题是:AI 根本帮不了你。 都 2025 年了,这么一小段 SwiftUI 代码,AI 仍然无法稳定分析对错。你敢想?别人写其他代码的遇到问题 AI 一补全,分分钟下班。你写 SwiftUI,遇到个小 bug,谁都帮不了你 ------ AI 不行,群里的老哥大多数也不懂 SwiftUI,最后只能自己一个人摸黑查,个人小项目无所谓,公司项目 你不完全摸清你能下班?

你以为的 SwiftUI 是「比 UIKit 少写 30%-50% 代码,开发效率高很多」,实际体验却是:2 小时飞机 vs 4 小时高铁。 飞机看似快,但你得提前很久到机场,机场又远在郊区,安检、候机、延误......加起来,可能还不如稳稳当当坐高铁四小时。2 小时飞机 只有对比 8 小时以上高铁 才算是有优势。 SwiftUI 就是这样 ------看似优雅省事,实际暗坑重重,会更折腾。

我也真不懂,为什么会有人劝新人入坑就直接学 SwiftUI,还能一脸轻松地说"SwiftUI 简单"。说简单的,大概率都是已经熟悉过 UIKit、或者其他端老程序员吧。 你确定一个新人能看懂 SwiftUI 这一堆花里胡哨的语法糖?

更现实的是,只学 SwiftUI 能找到工作的概率基本为 0。就算运气好进了公司,接手的项目十有八九还是 UIKit 的。所以如果是以找工作为目的入坑 iOS,优先建议学 UIKit,SwiftUI 顶多是锦上添花。

别的不说,光是游戏开发,ios 端的工程几乎和 swiftui 无关,甚至还是 Objective-C 的老代码,这个绕不过去。

下面是 ai 阵亡案发现场

GPT5

Gemini

QWEN

Deepseek

相关推荐
麦兜*18 小时前
【swift】SwiftUI动画卡顿全解:GeometryReader滥用检测与Canvas绘制替代方案
服务器·ios·swiftui·android studio·objective-c·ai编程·swift
东坡肘子5 天前
苹果首次在中国永久关闭了一家 Apple Store | 肘子的 Swift 周报 #097
swiftui·swift·apple
大熊猫侯佩9 天前
WWDC 25 玻璃态星际联盟:SwiftUI 视图协同“防御协议”
swiftui·swift·wwdc
东坡肘子12 天前
Xcode 26 beta 4,要崩我们一起崩 | 肘子的 Swift 周报 #096
swiftui·swift·apple
吴Wu涛涛涛涛涛Tao13 天前
SwiftUI 打造 TikTok 风格的滑动短视频播放器
ios·swiftui
大熊猫侯佩15 天前
代码精讲:WWDC 25 @Animatable 宏 —— SwiftUI 动画的新突破
swiftui·swift·wwdc
大熊猫侯佩16 天前
SwiftUI Charts 入门:从零到一,笑谈“柱”状人生(二)
swiftui·swift·apple
大熊猫侯佩16 天前
SwiftUI Charts 入门:从零到一,笑谈“柱”状人生(三)
swiftui·swift·apple
大熊猫侯佩16 天前
SwiftUI Charts 入门:从零到一,笑谈“柱”状人生(一)
swiftui·swift·apple