swift入门教程:变量函数核心语法+SwiftUI界面设计,附错误调试技巧

admin IOS开发教程 3


刚接触 Swift 的新手是不是总在这些地方犯难?变量和常量分不清,不知道什么时候该用 let 什么时候该用 var;写函数时参数和返回值搞混,调用起来一堆错误;用 SwiftUI 设计界面,按钮要么点不动,要么布局乱成一团;调试时看着红色报错信息,根本不知道问题出在哪。别着急,兔子哥第一次学 Swift 时,写一个简单的加法函数还把 “->” 写成了 “->”,调试半天才发现是符号用错了;设计界面时没搞懂 VStack 和 HStack 的区别,控件堆在一起根本看不清。今天就带零基础的你吃透变量函数核心语法,学会 SwiftUI 界面设计,再掌握实用的调试技巧,跟着学,入门 Swift 真没那么难!

一、变量和函数:Swift 的 “基本功”,先把这两个吃透


变量和函数是 Swift 的核心,就像盖房子的砖瓦,学好了才能搭出复杂的程序,这部分一定要扎实。
  1. 变量和常量:分清 “能改” 和 “不能改”

  • 常量用 let 定义,赋值后不能改,比如let maxScore = 100,适合存固定不变的数据(像最高分、π 值)。
  • 变量用 var 定义,值可以随时改,比如var currentScore = 80,后面可以写currentScore = 90更新分数,适合存变化的数据。
  • 命名小技巧:名字要见名知意,比如userName代表用户名,age代表年龄,别用 “a”“b” 这种没意义的名字,不然过几天自己都忘了代表啥。

  1. 数据类型:不同数据用不同 “盒子” 装
    Swift 里的数据有不同类型,就像装水果要用不同的盒子,整数装在 Int 盒子,小数装在 Double 盒子:

数据类型作用例子定义方式
Int存整数(没有小数点)95、-3、0var count: Int = 5
Double存小数(精度高)95.5、3.14let height: Double = 1.75
String存文字内容“Swift”“你好”let message: String = "Hello"
Bool存真假值true(真)、false(假)var isReady: Bool = true

Swift 有自动推断类型的功能,定义时可以不写类型,比如let name = "小明",Swift 会自动认出 name 是 String 类型,新手可以省点事。
  1. 函数:把重复代码 “打包”,用的时候直接调
    函数就是一段能完成特定功能的代码块,比如计算平均分、判断成绩等级,定义格式超简单:

swift
// 定义一个加法函数:接收两个整数,返回它们的和func add(a: Int, b: Int) -> Int {return a + b}// 调用函数:传参数,拿结果let result = add(a: 5, b: 3)print(result)  // 输出8

  • 函数名后面的括号里是参数,a: Int表示参数 a 是 Int 类型。
  • -> Int表示函数返回 Int 类型的结果,没有返回值可以不写。
  • 调用时要带参数名,比如add(a: 5, b: 3),这是 Swift 的特点,别漏了参数名。



二、SwiftUI 界面设计:用代码搭界面,比想象中简单


SwiftUI 是苹果推荐的界面开发框架,用代码就能设计 iOS 界面,不用拖控件,新手入门超友好,这几个基础组件一定要会。
  1. 基础组件:Text、Button、Image,先会这三个

  • Text:显示文字,修改样式超方便:

swift
Text("欢迎学习SwiftUI").font(.title)  // 字体大小.foregroundColor(.blue)  // 文字颜色.padding()  // 周围留白

  • Button:按钮,点击能触发事件:

swift
Button("点击我") {print("按钮被点击了")  // 点击后执行的代码}.background(Color.green)  // 背景色.foregroundColor(.white)  // 文字色.cornerRadius(10)  // 圆角

  • Image:显示图片,先把图片拖到项目里,再用名字调用:

swift
Image("logo")  // logo是图片文件名.resizable()  // 可缩放.frame(width: 100, height: 100)  // 大小

  1. 布局方式:VStack、HStack、ZStack,控件排整齐
    控件默认堆在一起,用布局容器能排整齐:

  • VStack:垂直排列(从上到下),适合放列表类内容:

swift
VStack(spacing: 20) {  // spacing是控件间距Text("个人信息")Text("姓名:小明")Text("年龄:20")}

  • HStack:水平排列(从左到右),适合放按钮组:

swift
HStack(spacing: 10) {Button("确定") { }Button("取消") { }}

  • ZStack:叠加排列(一层叠一层),适合放背景图上的文字:

swift
ZStack {Image("bg")  // 背景图Text("背景上的文字").foregroundColor(.white)}

  1. 实战案例:做个简单的个人信息卡片
    把上面的组件和布局结合,写一个信息卡片:

swift
struct InfoCard: View {var body: some View {VStack(spacing: 15) {Text("个人信息卡片").font(.headline).foregroundColor(.purple)Image("avatar")  // 头像图片.resizable().frame(width: 100, height: 100).clipShape(Circle())  // 圆形头像VStack(alignment: .leading, spacing: 8) {  // 左对齐Text("姓名:小李")Text("年龄:22")Text("职业:iOS开发新手")}.padding().background(Color(.systemGray6)).cornerRadius(8)Button("关注我") {print("关注成功")}.background(Color.blue).foregroundColor(.white).cornerRadius(5)}.padding()}}

运行后会看到一个有头像、文字和按钮的卡片,布局整齐又美观,成就感是不是来了?


三、错误调试技巧:新手常踩的 5 个坑,这样解决


写代码报错很正常,关键是会调试,这几个常见错误的解决方法一定要记好。
  1. 坑 1:函数调用时报 “Extra arguments at positions #1”
    原因:调用函数时参数名写错或多传了参数,比如函数定义是func add(a: Int, b: Int),调用时写成add(x: 5, b: 3)(参数名 a 写成 x)。
    解决:仔细核对函数定义的参数名,调用时必须完全一致,Swift 对参数名要求很严。
  2. 坑 2:变量修改后,SwiftUI 界面不更新
    原因:SwiftUI 中普通变量修改后不会触发界面更新,比如var count = 0,点击按钮后count += 1,界面上的 count 还是 0。
    解决:用@State修饰变量,让 SwiftUI 监听变化:@State private var count = 0,这样修改后界面会自动更新。
  3. 坑 3:布局混乱,控件挤在一起或超出屏幕
    原因:没加间距或约束,VStack/HStack 默认间距小,控件容易挤在一起。
    解决:给布局容器加spacing参数(比如VStack(spacing: 20)),或用padding()加边距,超出屏幕时加ScrollView让内容可滚动。
  4. 坑 4:常量赋值后报错 “Cannot assign to value: 'xxx' is a 'let' constant”
    原因:用 let 定义的常量被重新赋值了,比如let score = 80,后面又写score = 90
    解决:如果需要修改,把 let 改成 var,比如var score = 80,再赋值就不会报错了。
  5. 坑 5:图片不显示,报错 “Could not find image named 'xxx'”
    原因:图片没正确添加到项目,或文件名拼写错了(Swift 区分大小写)。
    解决:检查图片是否拖到 Xcode 的项目资源里,确保文件名和代码里的完全一致(包括大小写)。

网友 “Swift 新手” 分享:“之前图片一直不显示,后来发现代码里写的是‘Logo’,实际图片名是‘logo’,改完小写就显示了,原来 Swift 对大小写这么严格!”


四、自问自答:新手学 Swift 常见的 3 个问题


  1. “Swift 和 SwiftUI 是什么关系?学 Swift 必须学 SwiftUI 吗?”
    Swift 是编程语言,用来写逻辑代码;SwiftUI 是界面框架,用来设计 APP 界面,两者配合用。学 Swift 不一定要学 SwiftUI,但想开发 iOS APP,SwiftUI 是很方便的工具,新手推荐一起学,上手快。
  2. “函数一定要有返回值吗?没有返回值怎么写?”
    不一定!如果函数只是执行操作(比如打印内容、修改变量),可以没有返回值,定义时不写-> 类型就行,比如:

swift
func sayHello() {print("Hello Swift")  // 没有返回值}

  1. “调试时怎么看变量的值?除了 print 还有别的方法吗?”
    除了 print,Xcode 的调试功能更强大:在代码行左边点一下加断点,运行后程序会在断点处停下,右侧 “Variables” 窗口能看到所有变量的值;也可以在断点处右键 “Add Action”,设置自动打印变量值,不用写 print 代码。

结尾心得


Swift 入门关键在多写多练,变量函数别怕写错,写多了自然就分清 let 和 var、参数和返回值了;SwiftUI 布局别嫌麻烦,多试试不同的容器和参数,慢慢就有 “布局感” 了。兔子哥的经验是,遇到报错别慌,先看错误提示的最后一行,大部分问题都能从提示里找到线索;每个小功能都自己敲代码实现,别光看教程,亲手写的印象才深。刚开始可以从简单的计算器、信息卡片做起,一步步积累,你会发现 Swift 其实很灵活,SwiftUI 设计界面也很有趣,坚持下去,你也能开发出自己的 iOS APP!

标签: currentScore 小数点

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~