Swift基础知识
2016-04-05 08:41
309 查看
1、可选类型()
swift:数据类型是非常严谨的。在实际工作的时候,有可能会把一个空值赋值给一个变量
swift不支持不同数据类型的赋值
所以swift得解决办法是:可选类型(可空类型)
可选类型的符号:
?:声明的是一个可选类型(数据类型)
可选类型是在数据类型的后面加上一个?
声明:
var 变量名:数据类型?
!:拆包
把可选类型转换成原有类型
Option(小明) ->
小明
隐示拆包:let name2:NSString! = name
显示拆包:可选类型值
可选类型:支持被赋值成nil的数据类型
可选类型转换成原有数据类型成为拆包
数据类型后?
可选类型变量后!
例如
let name:NSString? = "九九"
print(name!)
let name2:NSString! = name
print(name2)
2、as:作为,明确数据类型->使用(1、跟其他数据类型计算《两者是包含关系》2、需要把子类转换成父类的时候)
作用:as:明确数据类型(在使用的时候)
as:可以将子类转换成父类(明确子类是父类)
NSString:是一个类->结构体String
只能是子类转父类(明确子类是父类)
*****:不同数据类型之间的转换,必须有支持数据类转换的方法,才可以去转换
*****:如果是子类转父类,可以直接赋值
is:判断是不是某一个数据类型
swift 字符串判断 ==
是否相同
插入字符串"XXX\z(插入的类容)"
代码:
let name:NSString? = "九九"
print ((name as! String) + "和轻轻")
NSString:是一个类->结构体String
let label:UILabel =
UILabel()
label as
UIView
2.枚举
(1)样式
《1》元素前加case
而且如果分开写
不需要加逗号
《2》可以合并到
一个case
元素间使用
逗号隔开
(2)内容
《1》枚举的值
不止可以是数字
也可以是
字符串
其他类型
数据类型的一个团队
《2》直接输出
枚举的元素
是枚举的元素名
如果要获得里面的值 .rawValue
(3)调用
《1》枚举.元素
《2》.元素
代码:
enum LoginType:NSString{
case WeiXi =
"微信"
case WeiBo =
"微博"
case QQ =
"QQ"
}
使用
let type1:LoginType = LoginType.WeiBo
let type2:LoginType = .QQ
print(type1,type2)
enum Item{
case color(Float,Float,Float)
case frame(Float,Float,Float)
}
使用
let item:Item =
Item.color(1.0,
1.0, 1.0)
switch item{
case .color(1.0,
1.0, 0.0):
print("红色")
case .color(1.0,
0.0, 1.0):
print("绿色")
case .color(1.0,
1.0, 1.0):
print("黄色")
default:print("error")
}
4、流程控制语句(自定义构造方法)
代码:
init(frame: CGRect,color:UIColor) {
super.init(frame: frame)
self.backgroundColor = color
}
// 版本遗留问题,初始化XIB的时候调用
required
init?(coder aDecoder:
NSCoder) {
fatalError("init(coder:) has not been implemented")
}
swift:数据类型是非常严谨的。在实际工作的时候,有可能会把一个空值赋值给一个变量
swift不支持不同数据类型的赋值
所以swift得解决办法是:可选类型(可空类型)
可选类型的符号:
?:声明的是一个可选类型(数据类型)
可选类型是在数据类型的后面加上一个?
声明:
var 变量名:数据类型?
!:拆包
把可选类型转换成原有类型
Option(小明) ->
小明
隐示拆包:let name2:NSString! = name
显示拆包:可选类型值
可选类型:支持被赋值成nil的数据类型
可选类型转换成原有数据类型成为拆包
数据类型后?
可选类型变量后!
例如
let name:NSString? = "九九"
print(name!)
let name2:NSString! = name
print(name2)
2、as:作为,明确数据类型->使用(1、跟其他数据类型计算《两者是包含关系》2、需要把子类转换成父类的时候)
作用:as:明确数据类型(在使用的时候)
as:可以将子类转换成父类(明确子类是父类)
NSString:是一个类->结构体String
只能是子类转父类(明确子类是父类)
*****:不同数据类型之间的转换,必须有支持数据类转换的方法,才可以去转换
*****:如果是子类转父类,可以直接赋值
is:判断是不是某一个数据类型
swift 字符串判断 ==
是否相同
插入字符串"XXX\z(插入的类容)"
代码:
let name:NSString? = "九九"
print ((name as! String) + "和轻轻")
NSString:是一个类->结构体String
let label:UILabel =
UILabel()
label as
UIView
2.枚举
(1)样式
《1》元素前加case
而且如果分开写
不需要加逗号
《2》可以合并到
一个case
元素间使用
逗号隔开
(2)内容
《1》枚举的值
不止可以是数字
也可以是
字符串
其他类型
数据类型的一个团队
《2》直接输出
枚举的元素
是枚举的元素名
如果要获得里面的值 .rawValue
(3)调用
《1》枚举.元素
《2》.元素
代码:
enum LoginType:NSString{
case WeiXi =
"微信"
case WeiBo =
"微博"
case QQ =
"QQ"
}
使用
let type1:LoginType = LoginType.WeiBo
let type2:LoginType = .QQ
print(type1,type2)
enum Item{
case color(Float,Float,Float)
case frame(Float,Float,Float)
}
使用
let item:Item =
Item.color(1.0,
1.0, 1.0)
switch item{
case .color(1.0,
1.0, 0.0):
print("红色")
case .color(1.0,
0.0, 1.0):
print("绿色")
case .color(1.0,
1.0, 1.0):
print("黄色")
default:print("error")
}
4、流程控制语句(自定义构造方法)
代码:
init(frame: CGRect,color:UIColor) {
super.init(frame: frame)
self.backgroundColor = color
}
// 版本遗留问题,初始化XIB的时候调用
required
init?(coder aDecoder:
NSCoder) {
fatalError("init(coder:) has not been implemented")
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Apple Swift学习教程
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 介绍 Fedora 上的 Swift
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- 浅析iOS应用开发中线程间的通信与线程安全问题
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例