Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Escaping Closures in Swift - 公司內分享會
Li-Hsuan Chen
September 23, 2016
Programming
1
150
Escaping Closures in Swift - 公司內分享會
Li-Hsuan Chen
September 23, 2016
Tweet
Share
More Decks by Li-Hsuan Chen
See All by Li-Hsuan Chen
The UX thinking of PAY ID
vc7
2
340
From Onboarding to Value Delivering in iOS
vc7
0
180
Merciless Refactoring
vc7
0
440
Protocol 的實例、測試和心得
vc7
2
580
共有経済
vc7
0
97
.gitignore
vc7
1
53
Git Workshop 03
vc7
0
57
Git Workshop 02
vc7
0
57
Git Workshop 01
vc7
0
120
Other Decks in Programming
See All in Programming
Licences open source : entre guerre de clochers et radicalité
pylapp
2
350
マイクロサービスプラットフォーム向け負荷試験基盤の初期リリースを終えた話
yuyu_hf
PRO
0
140
httputil.ReverseProxy でもリトライがしたい
toga4
0
120
あなたの会社の古いシステム、なんとかしませんか?~システム刷新から考えるDX化への道筋とバリエーション~/webinar20220420-systems
grapecity_dev
0
130
Architectural practices for greater scalability and innovation
otaviojava
0
100
[RailsConf 2022] The pitfalls of realtime-ification
palkan
0
290
Cloud-Conference-Day-Spring Cloud + Spring Webflux: como desenvolver seu primeiro microsserviço reativo em Java?
kamilahsantos
1
150
Oculus Interaction SDK 概説 / xrdnk-caunity-LT4
xrdnk
0
270
Reactでアプリケーションを構築する多様化
sakito
4
3.4k
テスト設計技法をなぜ&どのように使うのか体験しよう!
imtnd
0
500
SRE NEXT 2022: Sensible Incident Management for Software Startups
takanabe
2
660
Microsoft Teams の 会議アプリ開発のはじめかた / How to start Microsoft Teams app development
karamem0
0
1.7k
Featured
See All Featured
Music & Morning Musume
bryan
35
4.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1k
The World Runs on Bad Software
bkeepers
PRO
56
5.2k
4 Signs Your Business is Dying
shpigford
169
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
103
16k
Making the Leap to Tech Lead
cromwellryan
113
6.9k
What the flash - Photography Introduction
edds
61
10k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
37
3.2k
Ruby is Unlike a Banana
tanoku
91
9.2k
The Pragmatic Product Professional
lauravandoore
19
2.9k
Transcript
&TDBQJOH$MPTVSFT ꤫խ愴蠩 @escaping
䖰ㆭ酭鷗鷗ㆭ酭
殹DMPTVSF⡲捀侸⫄Ⰵ♧⦐NFUIPE儘 鸏⦐DMPTVSF剚㖈NFUIPE㛂遤㸤䧭䖕 䩞剚鄄㛂遤儘㽠䗳갭䭸㹁䧭FTDBQJOHDMPTVSF
⾲㨥䞕㞯 雊䧮⦛⢵䢩䢩⸈匌銯
class A { func someMethod(closure: () -> Void) { closure()
} } 鸏♧媯♶剚剤DPNQJMFSFSSPS
䞕㞯♧ 鸏⦐DMBTT剤⦐荈㹁纏涸RVFVF ⢵嶋⻋♶ずNFUIPE⫄Ⰵ涸DMPTVSFT
class A { var closures: [() -> Void]? = []
func someMethod(closure: () -> Void) { self.closures?.append(closure) } } 㖈4XJGUⴀ⢵⟃鸏媯♶剚剤㉏겗
class A { var closures: [() -> Void]? = []
func someMethod(closure: () -> Void) { self.closures?.append(closure) } }
None
class A { var closures: [() -> Void]? = []
func someMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } }
㼭穡 • @escaping ˖ ⫄ⰅNFUIPE涸DMPTVSF㥶卓銴㖈NFUIPE GVODUJPO涸SFUVSO䖕䩞㛂遤㽠䗳갭銴⸈♳ @escaping ˖ @noescapeJNQMJDJUMZ ˖
DMPTVSF⡲捀侸갸鏤鿪僽@noescape
䞕㞯✳ 䧮欽痧♲倰MJCSBSZ涸NFUIPE FH"MBNPSF
〫銴➮剤FTDBQJOH ⡹㽠銴騈衽!FTDBQJOH
class B { var closures: [() -> Void]? = []
func anotherMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } }
class A { func someMethod(closure: () -> Void) { B().anotherMethod(closure:
closure) } } class B { var closures: [() -> Void]? = [] func anotherMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } } 㖈4XJGUⴀ⢵⟃鸏垺㻨♶剚剤㉏겗
class A { func someMethod(closure: () -> Void) { B().anotherMethod(closure:
closure) } } class B { var closures: [() -> Void]? = [] func anotherMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } }
None
class A { func someMethod(closure: @escaping () -> Void) {
B().anotherMethod(closure: closure) } } class B { var closures: [() -> Void]? = [] func anotherMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } }
籏穡♧♴
䖰ㆭ酭鷗鷗ㆭ酭
鷗ⴀ㛂遤涸眕㕠
Ⱖ➮ ˖ 〳⟃鍑对SFUBJODZDMF涸㉏겗 4& 䖊㻜뀿 ˖ OPFTDBQFDMPTVSFTIBWFBMTPBMXBZTCFFOUIF QSFGFSSFEEFGBVMU
TJODFUIFZFMJNJOBUFBDMBTT PGSFUBJODZDMFJTTVFT ˖ QSPUPDPM涸㹁纏 ˖ 㥶卓㻜⡲QSPUPDPM涸倰岁儘銴⸈!FTDBQJOH QSPUPDPM⚥鑪倰岁涸㹁纏⛳銴⸈♳
5IBOL:PV