From 0d5ea3e5ae965fd0140936cf1f9becb4b50fc7bf Mon Sep 17 00:00:00 2001 From: AceVest Date: Wed, 8 Mar 2017 23:49:01 +0800 Subject: [PATCH] ... --- .../Classes.xcplaygroundpage/Contents.swift | 15 +++++++++- .../Contents.swift | 26 +++++++++++++++++- .../UserInterfaceState.xcuserstate | Bin 20863 -> 21297 bytes 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/learn/AcePlay/AcePlay.playground/Pages/Classes.xcplaygroundpage/Contents.swift b/learn/AcePlay/AcePlay.playground/Pages/Classes.xcplaygroundpage/Contents.swift index 7a81ad8..bc7279c 100644 --- a/learn/AcePlay/AcePlay.playground/Pages/Classes.xcplaygroundpage/Contents.swift +++ b/learn/AcePlay/AcePlay.playground/Pages/Classes.xcplaygroundpage/Contents.swift @@ -28,6 +28,19 @@ cinema.width = 2048 print("HD: \(hd.width)x\(hd.height)") print("Cinema: \(cinema.width)x\(cinema.height)") +// Enumeration 也是值类型 +enum CompassPoint: String { + case North + case South + case East + case West +} + +var originDirection = CompassPoint.East +var currentDirection = originDirection +currentDirection = .West +print("originDirection: \(originDirection) currentDirection: \(currentDirection)") + class VideoMode { var resolution = Resolution() @@ -58,4 +71,4 @@ if anotherTenEighty === tenEighty { if someVideoMode !== tenEighty { print("someVideoMode & tenEighty refer to different VideoMode instance") -} \ No newline at end of file +} diff --git a/learn/AcePlay/AcePlay.playground/Pages/Properties.xcplaygroundpage/Contents.swift b/learn/AcePlay/AcePlay.playground/Pages/Properties.xcplaygroundpage/Contents.swift index 24da0c4..d343e4d 100644 --- a/learn/AcePlay/AcePlay.playground/Pages/Properties.xcplaygroundpage/Contents.swift +++ b/learn/AcePlay/AcePlay.playground/Pages/Properties.xcplaygroundpage/Contents.swift @@ -27,6 +27,30 @@ printLine("Lazy Stored Properties") // lazy 属性在声明前加上 lazy 关键字 // 如果一个被标记为 lazy 的属性在没有初始化时就同时被多个线程访问,则无法保证该属性只会被初始化一次 +class DataImporter { + var name: String = "" + init() { + self.name = "DataImporter" + print("...\(self.name)...") + } +} + +class DataManager { + lazy var importer = DataImporter() + var data: Array = [] +} + +let dataManager = DataManager() +dataManager.data.append("Data_0") +dataManager.data.append("Data_1") +dataManager.data.append("Data_2") +// lazy 变量还未初始化 +print("the DataImporter instance for the importer property has not yet been created") + +// 主动调用才初始化 +dataManager.importer + + printLine("Computed Properties") @@ -94,4 +118,4 @@ class Cuboid { } let fourByFiveByTwo = Cuboid(width:4.0, height:5.0, depth:2.0) -print(fourByFiveByTwo.volume) \ No newline at end of file +print(fourByFiveByTwo.volume) diff --git a/learn/AcePlay/AcePlay.playground/playground.xcworkspace/xcuserdata/Ace.xcuserdatad/UserInterfaceState.xcuserstate b/learn/AcePlay/AcePlay.playground/playground.xcworkspace/xcuserdata/Ace.xcuserdatad/UserInterfaceState.xcuserstate index a5bd0eda41a23e5c276d7a45825adfa46ff6f58d..4a9ccd94eec012a448adcb0d43fe1d392dd1d5bc 100644 GIT binary patch delta 10907 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 delta 10816 zcmaKRd0bOR_x{W<_mYH=gai_@5Vj;lwyY!}pppcv8@S+x8%2$Xq9|frP&2n`t+lo4 zb!+Peh}Nans!y3yC&y3}gjYU|Qk?dw~YTDRZlCZhQMzJ0?VTxQO5&Y5$bd1h|- zWHo$R59i9mhSKHpl&#?9dA{sGKTrk+fpSmUI#P4yI?Mu2j+th z!CJ5mtOpywM_?oP7;FNcfX!eF*amii-C!U13N(Rl!D;XVI0MdtAHg|r8T<@>1;2qi z;4Zia?t{k=LIinG1fyXLRKrBr3Z}v|XbV6)%z~|98`u_>z`n2_><F zL3jurhDYF0cnp3AkHZu2B)kAG!e8KT@CN)H{u|zbcVXZjd;}jOh$uuOArd1Qibg7= zMu{j5rK1d#iL59e6`*$L71SPeKpjyh)EV_bC8#gzhx(%dXdo&@epG=*qEV;{jYTzR z9GZxxpsDC}^ah%bShN5wM2k>8YCx+{BU+8tqL0xg^aFBi}SDt zd$AAa*b9XtoWi32)CTG!Y9sYAwTb$K+DvVswo*;h0qP)ilsZP0oTN@sXQ;E(1?nR8 zGxZDgZ|XMnAL>u)4t1BhM0wS{WPip_MeB&Fn4Vl0)&J!8jKjIAjfRZ}peqNb{PZ0E9xRpV+(C6W&L1;xXv z#ut^nR#9G7Q&rusLw-SzvO%582Kg)5FX#o)13Kgvgg~BZf0+dEOC@n^VM5$|ZMYQl z2Lpkj4h$f1b)b}JiIE+kP@2JDFti>F0e%us^d#j3-~$1O0K>otAgu=#U^q!2iS?io zj3h}UndsO#g2X`AXz_|WJ#rYM3YbvTnl~qry2Q|Re>}oui^k1$f zlO$pwy5zjpK_AbY5Woy9DlQyXQ#Pp5@2RdXo7eydZ~#{*#xyX!R3Zx+wBamXL~8)k zTE=?=yafymU?zAI%p$2Ijifh#+2C#P4#^;GNggq>4`LIdOC?do{!0Jg8vl^z^<Kf6t7VHYTM>@{UvTB$_LvGQ3Zx#{M%p9dF#v<_S#uhfA{ zq&?BGaVlj1`~t3WEWAQG)PZZHBQf^&4EA@eESuPjy8-^-+V?xS32u>2q%$dO05`cG z(mD8J>|IZek}gEoJn;lP1%{O?Nx)btiK(qMH*Z9T zIX%H*vs$N2d1eX2Al2*w(xm%y7myDlniGdYQcR4^2r-NThB_!AJ?er<8v7TF8aL8k zUB+#O=G34Z#sWiKesKFiCFwZ=eCDkUpe@ z=-At|jBOPs=?>GO=_M00w2*$JKheD`1j%`IOM*MCIb{dTehKG>DP&;K_3XIG0hk9n z1H*dgfnMl?`LF=CgRj8$umkJ}JCQOnhzuq}h@T84p zVGr07_JX}hB^gIlL`9TDNmh}6k^STVxx_ImD&Ie7TzR>_x_ESDMNO{?|M*ggJfvQ1 z3{N5}l}I?LYqsL#j5YH*vU7O3E?I~Cf_(qbvT>C)!Fg`7Z)H#nF_8W~N-5M9Z0Nlnh1JNKn3*21YTVFHkl zv80CR*t3cxDVzaka`E3Fuhqdf$#`O9hew$5;M;HxH~bEnPzT>76N#}$VOhnf=FYHi zF_1RE1#lr;L?)41GPwaR0R`}VGKDBfJ<+i+dQkC7V6B67WGWFg<5s~9z_123!qspM z{1C2%>)?74AcQdFbux`iCo|T-kKji5G28?A$t31lHzL>9laH&4NaUem zgisjUSCWnpX5WAX zT8E-Y0}+)<Ls4Z%XJjhG7l26HQvXAT|Uz2Zw)SAn-i-}J~g{V7_ zu0lnq3+jrxk!@r<*+F)$LdB>D(4$^t7x|1h$>&7J)_H4Lfm~JooG|EBRK^ho4Iy8W zJwdX35vtixF5_~t_c>Eg+hB|L{jV0I(OiqkSE2S61lxN|?oN2oE;O0|Qb)cD1)0PJ zsU_dCsfwgP0FmHn(tHGKDSJJ(rd|2?QZ|J^PST)37Dv9Av*Jg=)rgk=e*|Tkr7NezHoF(Wz z^gjB493$V63+S(eNu$S|)yEF8FA z4DfLnKTN=8$Wm}v1aPq#G6OqR7S4uitzl=0kP*rOS-vKAo=ISU3t_EJ)%yv2C;(0EwOY&&HrTblF^ znNX#Y@@IJ^OImp7&rP%alLNe=bs&-;lEVI+Y@?Sm@MB_RkIA#yp1Sv>#+Iw7Mc&EWKnfl>y_f(mD3-_{!j=)>L(n;SMSYOyfocZEF)*IoBX<~>$iQR<>KT~Az*Y=QV_*gYO$@Y< zzZqy_C5DXREC#k=pqGK27}$k@y%|`-z(EWg%D~|a9L2zD22Nz)>kOR1z*!7@hk^4L z$TDy-d1-OGLgkXTC|ApB?hQ@HmP&>`>y=v3vNm6b=2fMVVbAEpW6jB$mc85`GSRSI z3yRnu4RI~IafF*=8Dn+Jm?uJjg#Y44OOqc$CQ1LrgO;w(2VKL|XjYQYzhyp`Ls$d* zG<9rCpVva;#^$AFCTUtu{~nr7GgJKI{m*HdoMJe*$nHLp=#;%VQAXS zt(Cip97~aKd!dC11|bt`sboYjaABI5?VTxY5gbz?6FWOKp*%12qK|o41PqOsj|Dga z3vna^9Sn3b(8a)P2D%%u7&hT3pvN)>=8!oI%q30+wkF2l)i2NVfnAGr!0>-x8nGTW z;S`|9tr*yr1LtvI4>7W9%*JdJ&f-Fwu?1VP4ci&$V_-f53mDjrfv+@T2X+F^gPVcv z8Q6h1ITsy+p%=2tEZXb>-06QO-x)UHBA~}z8Q7Tv7jp57h>^Wx(Pj6-{W)}R+y|H7 zzPKL)yE3pF1G_V@n1MYS@c`I_OM#w?-;+c4;?SY^+^u&)VE2(dgI*`g`qf%&=B)ID zY@5CLJra+=V?wEMRTVs|YpAHsU|p+UEUr(>#U*?83}3!tu4?JCBNtD?g!5F3C*vu2 zDh@EPF9Z8Aus;(I2QYA8BW7R|o(A-I1_MjEJYVJVEPK|Xxsemu**3j>E?)GHZCVVQ z@OwayKVaZs&cP7Qfu9)JUu{Nv9bWT~zz<;)UI+Ae0|U!B;4ltYL5yridrJ0ZyyJg& zXD4jJp8-AI&A<^Hx{^bWBt~|fT^INY@8{5FYzy)u#Ey2&1bL+qAAn8x5YXcz46NeN zqdD{#!WD2xMPh2TwO_5plAV>F;Bq*ol+;?X>`v|_q`9mo@mbFQDf~S?jeo#r7&w-J zH4Gfbz}FZ!Ue$?n93`TnIhX$jXF`;rVqg=c0D4Nvh~OJsYBRai-Xumg z)|C>7r}UwW{$XcO2G~Ryfu2fb;9DGeHiv$jtNrdHpI3B=*xRqx>da10uvo0wQ~K08 zUBUOiXQijil!J5skD8;ToUn+r{%4(_tHc=y}N}#7kG4MUk%Lfcx$~js_j3vIRA^vt%l|#lJ2N6^? zHI}L=DJsq!TT@*zs+@uE&vzdUyhe>Lm55(_AsC!%pkAXU09T));?Un5;R7OisXa&o zXI2(haqfljIoYWx6aj{MYAO|A;0gxT)l&@hIs+RRxca4Yo|+jtB37143Wioxve8~| z%X6H1J2YKiDsiw;UJd(IPEz)})IzQu|Fn@BsYTS{X8NvTVB>T8vf5l#_6n*I7#gXS zR2@}MHBhSC~qNqu60z4qm&BXNEok|P;+RMmOs2B`bgBVbtdf~hY!x{7*CJqe+{X5cr^ zP|2P>{)2%h1t)`yvN)a-iKb}5KgFjbXd%$kA_jiTz<+U`_6G$an%(4!H%HS-4jAfl z%Py~9MXP8v(9>}YJjlR99PltPvQK>(=49H)dh}_xV>?!7s2@(Jne0=;<5=o?zff4sePXS-K$E?4jHJW0Y6u_CQZ} zWZ-EA{=k9G5F@)W-kKvp2am~HGTpC4=6zrNCR2G4cg*x9Envp31?tC z&c->oHTL3s+zz+LRrn3e;(ELauf`wZb$A2bh&SQA_zV0M{sw=G_v3^3Fg}VeP>AwT z)zkuN6LpZfLfxWnQ-4x-sV6j_meMLZo;C*PEV@12k?u?v(Ov28bPu{0-G}Z=kEE;U zG4xn^96g?%NY~O+=m5>o@6#XAJLzBPN8xGVZNdw~`-Kk(9~eG0e0KPp@VVh^_`>kT z;p@Yn-zLHr^7q5NU|;rvSeDE=(|68;AMKK@buHU2|^ zLXa-V5abIA1x13cf)c^dfMBFxtYETWiXb3(Q!q;~Td+W|P_S6AQcx#o5Htx+2rdaO z3w{w?6O#&lW>dhQ{i^u*TV0FCxzb& z&j^1Mo)=yf-W2{Jye<4wcsCM7hDY)vBO)b{(#YsYd1R|dYh>HV{K$5Z?IQ~#yF_-2 zERHOT93DA7a&jPYY9xuA5jit*R^;r+%mBDbiU zs94lf)LT>{>L(f?DixK928;Zna#4k7ifEB&t!TUGi0F*ywpbv}5c|YM;(p?R;#b9k z#eQ+QxK=z}JWD)V{Eqlt@ltV}xIx?~UMJol4r~-}67Ld!B|auTB|a@aBfcQMB)%;E zMSM^ER3em!B~g-SiChvZ$&(aHx=OlBdP;grN+bg%BP7+58p&&t36g+>kxY}!kj#{9 zksOr#EcspXhvc^8&nOTjj*5zsMa4uZqLfkUsJN)~sLUvHlr_p8<%n`cxubHUIs~G6 zMvab|9rr>5K#HVTN=tcCfiy;{kSe8WX`D1(nkdbc_LfeSzAfD<-7RgB z9+#ez-j-pROlFXIW%;spvi7o$vd*%pvYE2CWpiY6W%Fe#Wb0&`WSeDMW!q$5$-a>t zk=>O2Cps!x8=VlH6s?O+j}Bx-d!vh@`$YGR?jJoc`atxF=wG96#o(C87*|Z|m|-ys zW9nnp#cYe&5wk1i^O$d94#pgdITLd(=0eP+mdBVeGQl&9Pf!x5e&=-4*+J>^HIhiaii}DE3V3kFn=tFUDSr z{der+*r!UU3{!Se2Bs_LDOu%0_kd0u%zc~SY3@|NTlH}HD4`Mi_}qSnL0+@N}Z;5sdLn=1L{1rSDmjeRCibRQ1?>zQTx@y z)s^Z|>apr^>hbD{>etn?)l1aN)GO3=>ecEG)$7z7)Z5g1)yLFV)K4`kjYgx@BxsT} zIhuS;Crxk7B+VO|H#Ki*-qy^~G-w(%Ycy*$>op%~wrM`o?AGkne4#m_Ii@+TIjQ+c z^Rp&!MRQH_hvu(1DlR;Z9~Tj)i!;O-<5J_&xPrKG5I-e85PvoP&-lCX_v0TV^hhX67@XiwC{H+? za5mvw!i9uOi5(JqCH6_|o7g|`VB!ynXA{pQUQFtk)H|spsbA8-q;HarC!I|CKIu%d zFS%=S_v9YQy^{|npG-cTd?xwFmbQg7(bysxPba!<3bbsj{>bvO&>dW;N`Vsn(`YQbdeXV|~p6FlKPuIVrU#wrH zKdL{jKdC>hKdV2lzoh?Je?@;y|C|1%{@?mP_4o7-^pEsU4ak5E;RdTA%ivsjT4QNjlUW1 z8y^@S8lSWp*=ka&$*rcgVp?5qb+^_1Ru5V|N*$IuE_HnB#MH^Dw^ARbK2Cj_hSEl) zO-P%RHaRVjb~WwKw7Y5d)BaBPr&p)fq`wwOpO}6r{bu?f>9^DGWDL$2ol%`plQBNy zO2&UO?quA{c#v6|S(!OLb5iD%Op-Y*^Nq}TnF}%(WxkjBLFV$zm6@MqexLc+6k)QN za!u__T}=Z_!%V|Xm8Maq(WYwC6caJMZkl15X?n}_wrQcM-n7BA)AY6JThjs4Vbd|w z2~*&L=_k`KrmLpwrW>Z4W}ew(Zf)*kCgxe@dFCbNM)M}~7V|dqPV?vHz2*bv!{(#r zgX^~iD7P&=f(O6O}sg`t$$zrkCEe=aJOQnUi)LHghj$1BR zZdmSF9#|e(o?4NWvP!HntK1qJu&S(a)_AMYnq|$i`mF7&9ju+LU95er1FWUiLDnJG za%+Wkx^;!M$$HZI$VS8>6w5_v!Wc%2**|ycT+qU0!!gk4a!*91<@VwBN_&-kjD3>*4f|aCGW&=2 z_4bYSPwZRm+wEW4zp?+ze!zane$@V*{r46qZCbxd_Ij_Hn>j`@y-jwO!w z9ZMZ69CeO$jxCOTj)RUPj_({N9j6^<9akLJ9ltqlI{t9{$8pE;*vWUwoC(e}XQtEQ zv^$+nx3j?6-r3Pv=~I|I(QobNd2Is>e8k@G$0D(4#KTIUAmM&~Ea zEzZxK`<*A8mz+18x16_~cbxZ~f4e9b&lTZ{bctP3SF|h6mFmiJIbGSV99L^sTUSR{ zp{t9lyQ_z*x2wc8$W`SU@0#wK=UU)e?0Vm|%(c?h;M(Nc;`-FJ!}XbKw`-s4OV=US zDc8k->vHz`?5){N*@v^g&%T&_J^Oa{6L*-KcJtjLca%HYEq5oo_3jjRs=L}9a5L^{ z?l;_f-G|(#-DlnB-Iv@yyRW)$yYIN~yC1k8x}W5L9Da^8Cq5@NCnLw4W6N>mWas4P zypq!~r*lqGPPd%moKZOoa~g8?s>Tar68cUbQ5+>yD5bI<0U%e|2MQ|sK;9a?v4UD+YxOiw4Ky; za@#=LCwUQhk$K`gX*_1^_41YY2KoHHVZPzMk-jS51m6tbyS}Bq6~203qwhoCI^TBRPTyy~J^9A`tbBKV v>-@a@g8cURo$?Fwi}U;D56-X5pPD}{e^&6nbO52yZ+f^S^w9jtpZ)&;a|r^h -- 2.47.0