Swift學(xué)習(xí)記錄 Day 1

100 Days of Swift中學(xué)習(xí)矛纹,實(shí)踐

????目前正在學(xué)習(xí)swift ,之前有一些好高騖遠(yuǎn), 剛剛接觸螃诅,并且了解了一部分語法后就因?yàn)樽约涸贠C上使用reactiveOBJC還算熟練,想直接學(xué)會(huì)rxswift和reactiveswift 状囱,中間因?yàn)閤code有時(shí)候索引失效和一些其他原因术裸,想過放棄學(xué)習(xí),無意中看到?關(guān)于iOS學(xué)習(xí)進(jìn)階的必讀一些博客總結(jié)?這個(gè)文章時(shí)看到了 100 Days of Swift亭枷, 感覺從一次次項(xiàng)目中袭艺,更加能夠堅(jiān)實(shí)我的基礎(chǔ), 所以決定從基礎(chǔ)開始叨粘,跟著一步步往前走


第一天:



用了20分鐘把這個(gè)弄完猾编, UI很容易瘤睹, 但是Swift和OC太多不一樣,還花了20分鐘

用到的知識(shí)點(diǎn):

1.手勢(shì):tap答倡,longPress事件轰传。

2.KVO

3.GCD? ?DispatchSourceTimer

? ??????var codeTimer =DispatchSource.makeTimerSource(queue:DispatchQueue.global())

? ? ? ? codeTimer.schedule(deadline: .now(), repeating:0.05)

? ? ? ? codeTimer.setEventHandler {

? ? ? ? ? ? self.totalNum=self.totalNum+1

? ? ? ? }

?@objc fileprivate func LongPressAction(sender:UIGestureRecognizer){? ? ? ?

????if sender.state == .began{

? ? ? ? ? ? codeTimer.resume() ?

? ? ? ? }

????????else if sender.state == .ended ? ? ? ? {

? ? ? ? ? ? codeTimer.suspend() ? ? ? ?

????????} ?? ? ? ? ? ?

}

?deinit {

? ? ? ? self.removeObserver(self, forKeyPath: "myDate", context: nil)

? ? ? ? codeTimer.resume()

? ? }

直接上代碼了


遇到的坑:

1.添加Action 的時(shí)候,不了解Selector在Swift中使用,導(dǎo)致崩潰苇羡。

#selectorSelector()區(qū)別

#selector (self.funcName)? ? ? ?self 作用域 funcName 方法名绸吸。當(dāng)前作用域只有唯一方法時(shí) 可以省略作用域

????#selector ()? ?能夠代替字符串明確構(gòu)造 Selector? 直接索引出當(dāng)前作用域的方法,不會(huì)出現(xiàn)[unrecognized selector sent to instance] 崩潰的bug ,更加安全 设江。但是在使用#selector()的時(shí)候锦茁, 如果方法是Swift的私有方法, 則需要賦予該方法? OC的runtime特性 在前面加入修飾詞 @objc

Selector()? ??

? ???填寫字符串來搜索方法叉存÷肓可能會(huì)出現(xiàn)找不到方法而崩潰的問題, 書寫效率也不夠高效歼捏。但是在某些情況下能夠起到作用稿存。比如:父類有一個(gè)私有方法 show, 子類通過#selector 是無法調(diào)用父類中的show方法的瞳秽, 但是Selector 可以通過 字符串匹配到方法瓣履,并且調(diào)用


2.KVO

oc:一般直接給觀察的那個(gè)屬性賦新值 就會(huì)觸發(fā)

這是因?yàn)?oc具有運(yùn)行時(shí)機(jī)制,并且繼承的NSObject類练俐,而NSObject類實(shí)現(xiàn)了willChangeValueForKey袖迎、didChangeValueForKey能夠在運(yùn)行時(shí)派生一個(gè)子類正常執(zhí)行。

swift:?

1腺晾,給屬性前面加上 關(guān)鍵字 dynamic?

2 燕锥,使用setvalue for key 可以觸發(fā)

swift本身屏蔽了運(yùn)行時(shí)機(jī)制,沒有運(yùn)行時(shí)就沒有派生類悯蝉。沒有派生類归形,就沒有重寫set get方法。沒有重寫set方法 鼻由,就沒有調(diào)用類本身的 setvalue for key 來 觸發(fā)kvo通知觀察者暇榴。so 要么加上關(guān)鍵字?dynamic獲取動(dòng)態(tài)性、要么直接使用setvalue for key來觸發(fā)kvo嗡靡。

還有就是在observeValue 方法中不會(huì)使用?[NSKeyValueChangeKey : Any] 跺撼。?

? if let value = change?[NSKeyValueChangeKey.newKey] as? Int {

? ? ? ? ? ? ? ? DispatchQueue.main.async{

?? ? ? ? ? ? ? ? ? ? self.NumberLable.text="\(value)"

}

問題首先沒有加入as?Int? 然后斷點(diǎn)打印的時(shí)候 po??change?[NSKeyValueChangeKey.newKey] 會(huì)報(bào)找不到description讨彼。



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歉井,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哈误,更是在濱河造成了極大的恐慌哩至,老刑警劉巖躏嚎,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異菩貌,居然都是意外死亡卢佣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門箭阶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虚茶,“玉大人,你說我怎么就攤上這事仇参∴诮校” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵诈乒,是天一觀的道長罩扇。 經(jīng)常有香客問我,道長怕磨,這世上最難降的妖魔是什么喂饥? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮肠鲫,結(jié)果婚禮上员帮,老公的妹妹穿的比我還像新娘。我一直安慰自己导饲,他們只是感情好集侯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著帜消,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浓体。 梳的紋絲不亂的頭發(fā)上泡挺,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音命浴,去河邊找鬼娄猫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛生闲,可吹牛的內(nèi)容都是我干的媳溺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碍讯,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼悬蔽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捉兴,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蝎困,失蹤者是張志新(化名)和其女友劉穎录语,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體禾乘,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡澎埠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了始藕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒲稳。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖伍派,靈堂內(nèi)的尸體忽然破棺而出江耀,到底是詐尸還是另有隱情,我是刑警寧澤拙已,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布决记,位于F島的核電站,受9級(jí)特大地震影響倍踪,放射性物質(zhì)發(fā)生泄漏系宫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一建车、第九天 我趴在偏房一處隱蔽的房頂上張望扩借。 院中可真熱鬧,春花似錦缤至、人聲如沸潮罪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫉到。三九已至,卻和暖如春月洛,著一層夾襖步出監(jiān)牢的瞬間何恶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國打工嚼黔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留细层,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓唬涧,卻偏偏與公主長得像疫赎,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子碎节,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,140評(píng)論 30 470
  • ? 深拷貝同淺拷貝的區(qū)別:淺拷貝是指針拷貝捧搞,對(duì)一個(gè)對(duì)象進(jìn)行淺拷貝,相當(dāng)于對(duì)指向?qū)ο蟮闹羔樳M(jìn)行復(fù)制,產(chǎn)生一個(gè)新的指向...
    WSGNSLog閱讀 1,254評(píng)論 0 1
  • 父類實(shí)現(xiàn)深拷貝時(shí)实牡,子類如何實(shí)現(xiàn)深度拷貝陌僵。父類沒有實(shí)現(xiàn)深拷貝時(shí),子類如何實(shí)現(xiàn)深度拷貝创坞。? 深拷貝同淺拷貝的區(qū)別:淺拷...
    JonesCxy閱讀 1,004評(píng)論 1 7
  • 問題 1)柯里化碗短,通過柯里化,改造target-action题涨,因?yàn)閟elector只能使用字符串偎谁,在編譯時(shí)無法發(fā)現(xiàn)...
    lanjing閱讀 3,506評(píng)論 3 19
  • 自我覺得自己是特能吃苦的女生,總感覺自己已經(jīng)很闖蕩了纲堵,可當(dāng)面臨一些自己從沒做過的事情就開始畏懼了巡雨。 ...
    夏莉沫花閱讀 644評(píng)論 1 0