swift学习笔记01 wift初见
- 变量始终在使用前初始化。
- 检查数组索引超出范围的错误。
- 检查整数是否溢出。
- 可选值确保明确处理 nil 值。
- 内存被自动管理。
- 错误处理允许从意外故障控制恢复
- 不需要在每个语句结尾写上分号。
第一个错误
真机运行,刚上来就报了个错误。先使用自己的开发者账号,成功运行,然后删除app后选择公司账号,重新运行报错
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/containers/Bundle/Application/0A0AA7BF-D8F0-4F85-AB5A-76C8988B50F8/SwiftDemo01.app/SwiftDemo01
Reason: no suitable image found. Did find:
/private/var/containers/Bundle/Application/0A0AA7BF-D8F0-4F85-AB5A-76C8988B50F8/SwiftDemo01.app/Frameworks/libswiftCore.dylib: code signature invalid for '/private/var/containers/Bundle/Application/0A0AA7BF-D8F0-4F85-AB5A-76C8988B50F8/SwiftDemo01.app/Frameworks/libswiftCore.dylib'
解决办法
1.删除程序,换回原来的账号重新运行
2.command + shift + K (清除缓存)
这是两个方法,不是两个步骤!
可选值解包
- 你可以一起使用 if 和 let 来处理值缺失的情况
var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName {//if let 语句,当optionName 有值时赋值给name,没有值时不进入true逻辑
greeting = "Hello, \(name)"
} else {
greeting = "Hello! nil"
}
如果变量的可选值是 nil,条件会判断为 false,大括号中的代码会被跳过。如果不是 nil,会将值解包并赋给 let 后面的常量,这样代码块中就可以使用这个值了。
- 另一种处理可选值的方法是通过使用 ?? 操作符来提供一个默认值。如果可选值缺失的话,可以使用默认值来代替。
let nickName: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickName ?? fullName)"//??,针对可选值的时候,当可选值没有值的时候就使用后面的默认值
//解法1,设置可选值的默认值-Provide a default value to avoid this warning
print(sideLength ?? 1)
//解法2,用人格保证他有值-Force-unwrap the value to avoid this warning
print(sideLength!)
//解法3,转换为any -Explicitly cast to 'Any' with 'as Any' to silence this warning
print(sideLength as Any)