【Swift】第七周 单词重组案例

本文介绍了如何使用Swift开发Word Scramble游戏,涵盖了List的使用、Optional类型、Bundle资源读取、字符串操作及游戏核心功能实现,如判断单词是否可用和正确。
摘要由CSDN通过智能技术生成



1. List列表

List列表可以使用ForEach创建多个Text
在这里插入图片描述
在这里插入图片描述
与Form的不同之处:List可以自动实现ForEach

java
List(0 ..< 5){
   
Text("在List中动态创建了第\($0)行")
}
.listStyle(GroupedListStyle())

通过id属性指定具体的行

  • 当通过遍历“数据范围”(例如 0…<5 )或者通过遍历“数组元素”的方式在List或者ForEach中动态创建了row时,SwiftUl的编译器是通过这些row的id属性来辨识的,
  • 当制定了id属性,当我们在列表中需要删除某一行时便可以直接删掉,而不用再重新绘制整个视图页面了。
  • 一般id属性的值使用的就是被遍历的数据项本身,因此使用 .self, 例如:
struct ContentView: View {
   
let students = ["张三丰", "李莫愁", "王语嫣", "赵敏"]

	var body: some View {
   
		List(students, id: \.self) {
   
			Text($0)
		}
	}
}

2. Optional类型的数据

在程序中经常碰到有一个数据,它可能有值,也可能没有值的情况,针对这种情况,Swift设置了Optional类型。

  • 一个Optional类型的常量或者变量,说明它可以有一个指定的值,也可以是nil
  • Optional可以用来修饰所有数据类型

2.1 可选常量

如下声明一个常量会在第二行报错,因为没有任何可以指定的值。常量声明时必须初始化,也必须指定一个默认值。

let someVal: Int? = 10

print(someVal)

修改代码如下不报错

let someVal: Int? = 10

print(someVal)

2.2 可选变量

如下代码,someVal默认为 nil

var someVal: Int?

print(someVal)

在这里插入图片描述

2.3 解包

  • 什么是解包?
    解释:在可选变量不指定值时,变量默认值为nil,但是nil在程序运算和调用时会出错,所以需要在进行实际运算操作前将值为nil的可能性去除。

具体代码如下:

  • 方法一:
    使用感叹号 !可以理解为一种肯定的语气,表示这里的sameVal一定是有值的(不为nil的)
    但是这种做法容易出错,万一someVal没有实际值就坏了。
var someVar: Int? = 10
print(someVar! + 20)
  • 方法2:
    使用 if let,软解包
var someVar: Int? = 10
if let myVar = someVar {
   

//只有someVal有确定值时才会进入到这里

}

测试结果:控制台输出 10
在这里插入图片描述

3. Bundle

Bundle 管理了一个 Apple App 的所有资源,一般情况,一个App对应一个默认的Bundle,叫

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_popo_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值