15种快速技巧,提升Swift编码能力

白癜风专科哪里好 https://wapyyk.39.net/bj/zhuanke/89ac7.html

全文共字,预计学习时长16分钟

本文介绍的这些Swift实用性技巧的操作说明可以用于创建iOS应用程序,希望你可从中有所收获。

1.可选项解包

varoptional1:Int?

varoptional2:Int?

//1-UglyCode

funcunwrap(){

ifleto1=optional1{

ifleto2=optional2{

//reached

}

}

}

//2-CleanCode

funcunwrap(){

guardleto1=optional1,leto2=optional2else{return}

//reached

}

解包可选变量,在一行中使用选项2处理故障。

如果两个可选值都不是nil值,则选项2会被注释。如果其中一个变量为nil值,则“返回”并退出此函数的范围。

2.三元运算符

letmyBool=true

lettestBool=myBool?false:true

lettestInt=myBool?16:8

//testBoolequalsfalse,testIntequals16becausetheinputtotheconditionalistrue,therefore

//thefirstchoiceispickedforeachoperator

//ternary

letternary=conditional?true:false

//vs.conditional

varternary=false

ifconditional{

ternary=true

}

通过这些有用的运算符,将条件逻辑压缩到一行。根据状态设置变量值。

是不是更方便?如果读起来有点难,那么可将这些运算符嵌套为紧凑的代码。

//doublestack

letternaryDouble=conditional?true:(conditional2?true:false)

//triplestack

letternaryTriple=conditional?true:(conditional2?true:(conditional3?true:false))

3.泛型

//1-UglyCode

varstrings=[Hello,This,Is,A,Test]

varintegers=[1,2,3,4,5,6,7]

funcprintStrings(_array:[String]){

forsinarray{

print(s)

}

}

funcprintIntegers(_array:[Int]){

foriinarray{

print(i)

}

}

//1-InAction

printStrings(strings)

printIntegers(integers)

//2-CleanCode

funcprintArrayT(_array:[T]){

foriteminarray{

print(element)

}

}

//2-InAction

printArray(strings)

printArray(integers)

根据谷歌定义,泛型编程是一种编写函数和数据类型的方法,同时对所使用的数据类型做出最小化假设。

考虑到抽象化,使用泛型可生成更为清晰的代码,减少错误。

如上文所示,通过选择选项2,可编写一个函数(相对于多个),处理几种不同类型的输入。

4.通过十六进制代码生成UIColor

创建一个名为UIColor+Extensions.swift的文件,包含以下代码:

importUIKit

extensionUIColor{

convenienceinit(hex:Int,alpha:CGFloat=1.0){

self.init(

red:CGFloat((hex0xFF)16)/.0,

green:CGFloat((hex0x00FF00)8)/.0,

blue:CGFloat((hex0xFF)0)/.0,

alpha:alpha

)

}

}

恭喜,现在你可通过十六进制代码生成不同颜色,如下所示:

letgreen=UIColor(hex:0x1faf46)

letred=UIColor(hex:0xfe)

letblue=UIColor(hex:0xd5)

5.使用扩展程序

importUIKit

extensionUIButton{

funcpress(


转载请注明:http://www.aierlanlan.com/grrz/2279.html