05.swift?可选类型
import UIKit
创新互联建站专注于企业营销型网站、网站重做改版、石鼓网站定制设计、自适应品牌网站建设、H5场景定制、成都商城网站开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为石鼓等各大城市提供网站开发制作服务。
//类中所有的属性在对象初始化时,必须有初始化值
class Person : NSObject {
var name : String?
var view : UIView?
}
// 1.定义可选类型
// 1>普通定义可选类型的方式
// var name : Optional
// 2>语法糖
var name : String?
// 2.给可选类型赋值
name ="why"
// 3.从可选类型中取值
// Optional("why")
print(name)
//从可选类型中取值:可选类型!-->强制解包
//print(name!)
// 4.注意:如果可选类型中没有值,那么强制解包程序会崩溃
//强制解包是非常危险的操作:建议在解包前先判断可选类型中是否有值
if name != nil {
print(name!)
print(name!)
print(name!)
}
// 5.可选绑定
// 1> 判断name是否有值,如果没有值,则不执行{}.
// 2>如果有值,则对可选类型进行解包,并且将解包后的值赋值给前面的常量
//if let tempName = name {
// print(tempName)
//}
if let name = name {
print(name)
print(name)
print(name)
print(name)
}
/*
可选值: optionals有两种状态:
1.有值 2.没有值, 没有值就是nil
*/
//有值:
var optValue1: Int? = 9
//没有值:
var optValue2: Int?
var optValue3: Int? = nil
/*
可选值可以利用if语句来进行判断
*/
var optValue4: Int?
ifoptValue4 !=nil
{
print(optValue4)
}else
{
print(optValue4)
}
/*
提取可选类型的值(强制解析)
会将optValue中的整型值强制拿出来赋值给变量result,换句话说就是告诉编译器optValue一定有值,因为可选类型有两种状态有值和没有值,所以需要告诉编译器到底有没有值
需要注意的是如果强制解析optValue,但是optValue中没有值时会引发一个运行时错误
*/
var optValue5: Int? = 9
var result1: Int = optValue5!
print(result1)
//报错:
var optValue6: Int?
var result2: Int = optValue6!
print(result2)
/*
可选绑定:
为了更安全的解析可选类型的值,一般情况下使用可选绑定
如果optValue没有值就不会做任何操作, 如果optValue有值会返回true并将optValue的值赋值给result执行大括号中的内容
*/
var optValue: Int? = 9
if let result3 = optValue
{
print(result3)
}
可选类型的使用
let urlString ="http://www.520it.com"
// 1.普通写法
let url : NSURL? = NSURL(string: urlString)
if url != nil {
let request = NSURLRequest(URL: url!)
}
//可选绑定
if let url = url {
let request = NSURLRequest(URL: url)
}
//可选绑定的简介写法
if let url = NSURL(string: urlString) {
let request = NSURLRequest(URL: url)
}
分享名称:05.swift?可选类型
新闻来源:http://cdiso.cn/article/gdpode.html