您好,登錄后才能下訂單哦!
import UIKit
// 類中所有的屬性在對象初始化時,必須有初始化值
class Person : NSObject {
var name : String?
var view : UIView?
}
// 1.定義可選類型
// 1>普通定義可選類型的方式
// var name : Optional<String>
// 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是否有值,如果沒有值,則不執(zhí)行{}.
// 2> 如果有值,則對可選類型進行解包,并且將解包后的值賦值給前面的常量
//if let tempName = name {
// print(tempName)
//}
if let name = name {
print(name)
print(name)
print(name)
print(name)
}
/*
可選值: optionals有兩種狀態(tài):
1.有值 2.沒有值, 沒有值就是nil
*/
//有值:
var optValue1: Int? = 9
//沒有值:
var optValue2: Int?
var optValue3: Int? = nil
/*
可選值可以利用if語句來進行判斷
*/
var optValue4: Int?
if optValue4 != nil
{
print(optValue4)
}else
{
print(optValue4)
}
/*
提取可選類型的值(強制解析)
會將optValue中的整型值強制拿出來賦值給變量result, 換句話說就是告訴編譯器optValue一定有值, 因為可選類型有兩種狀態(tài)有值和沒有值, 所以需要告訴編譯器到底有沒有值
需要注意的是如果強制解析optValue, 但是optValue中沒有值時會引發(fā)一個運行時錯誤
*/
var optValue5: Int? = 9
var result1: Int = optValue5!
print(result1)
//報錯:
var optValue6: Int?
var result2: Int = optValue6!
print(result2)
/*
可選綁定:
為了更安全的解析可選類型的值, 一般情況下使用可選綁定
如果optValue沒有值就不會做任何操作, 如果optValue有值會返回true并將optValue的值賦值給result執(zhí)行大括號中的內(nèi)容
*/
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)
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。