学习Swift 所遇到的坑系列(2)

1.如何在Swift中进行懒加载

使用ObjectC开发的同学,习惯性的使用懒加载去加载属性或者控件,那么到了Swift开发的时候,如何才能进行懒加载呢?

lazy var tabBarController:CustomTabBarController = {

var tab:CustomTabBarController = CustomTabBarController()

return tab

}(),使用时self.window?.rootViewController = self.tabBarController即可使用。

2.如何重写属性的setter方法

如同定义一个占位图placeHoldImage

private var plcImage:UIImage{

   get{

get方法内,特别的重要,因为此刻你的一句代码,可能引起的就是一个crash,一般情况下我们直接return self.placeHoldImage!  注意此处的感叹号,在Swift中,由于声明的一个没有初始化的变量,所以我们在声明变量的时候,通常会在变量类型后面加一个问号,然后实例化过后使用的时候,我们通常使用感叹号来表明,这个变量已经初始化完成,不为空了,但是如果变量值为空的话,使用!后,将会crash。

    }

   set(newPlcImage){

注意此处,切不可书写picImage = newPicImage.或者self.picImage = newPicImage,一般情况下,我们定义两个属性,一个为placeHoldImage,一个为plcImage,此处可写为self.placeHoldImage = NewPicImage.使用的时候可以通过使用

   }

}


2.Swift中?和感叹号的区别

问号?

a.声明时添加?,告诉编译器这个是Optional的,如果声明时没有手动初始化,就自动初始化为nil

b.在对变量值操作前添加?,判断如果变量时nil,则不响应后面的方法。

叹号!

a.声明时添加!,告诉编译器这个是Optional的,并且之后对该变量操作的时候,都隐式的在操作前添加!

b.在对变量操作前添加!,表示默认为非nil,直接解包进行处理

3.如何在Swift中使用类似于OC中的Block

使用Block进行值得回传调用,是很多OC开发者必备的技能,那么到了Swift语言开发的道路上,如何继续使用此技能呢?

答案就是闭包。例如

/**

当点击图片的时候,相应的返回value所在的index,和value所对应的链接,便于

页面之间的跳转

*/

typealias clickBlock = (_ index:NSInteger) -> Void  

声明一个这样类型的点击事件Block,在定义属性的时候,将闭包声明为变量

var clickActionBlock:clickBlock? ,在使用的时候呢,我们可以

if (self.clickActionBlock != nil) {

self.clickActionBlock!(_currentIndex!)

}这样,和使用OC的block差不多。不同的是,在block 回传值得地方,书写改变了,写法为

self.picView?.clickActionBlock = {(_ index:NSInteger) in

print("第\(index) 张图片被点击")

},这样的写法,就可以帮助你在Swift中尽情的使用Block了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容