From 2162005745bb6d16524da9fe293bd1d2e243ed56 Mon Sep 17 00:00:00 2001 From: jiulinxiri Date: Tue, 14 Dec 2021 09:36:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contents.swift | 5 + 01 注释.playground/contents.xcplayground | 4 + .../contents.xcworkspacedata | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 13435 bytes .../xcschemes/xcschememanagement.plist | 2 +- .../Contents.swift | 4 + .../contents.xcplayground | 4 + .../contents.xcworkspacedata | 7 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 11995 bytes .../Contents.swift | 4 + .../contents.xcplayground | 4 + .../contents.xcworkspacedata | 7 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 12001 bytes .../Contents.swift | 4 + 04 函数.playground/contents.xcplayground | 4 + .../contents.xcworkspacedata | 7 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 11939 bytes .../Contents.swift | 4 + 05 枚举.playground/contents.xcplayground | 4 + .../contents.xcworkspacedata | 7 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 11906 bytes .../Contents.swift | 6 +- 06 可选项.playground/contents.xcplayground | 4 + .../contents.xcworkspacedata | 7 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 11937 bytes README.md | 87 +++++++++--------- .../Contents.swift | 7 -- SwiftStudy.playground/contents.xcplayground | 12 --- .../UserInterfaceState.xcuserstate | Bin 33309 -> 0 bytes 29 files changed, 129 insertions(+), 65 deletions(-) rename {SwiftStudy.playground/Pages/01 注释.xcplaygroundpage => 01 注释.playground}/Contents.swift (84%) create mode 100644 01 注释.playground/contents.xcplayground rename {SwiftStudy.playground => 01 注释.playground}/playground.xcworkspace/contents.xcworkspacedata (100%) create mode 100644 01 注释.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate rename {SwiftStudy.playground => 01 注释.playground}/xcuserdata/jiulinxiri.xcuserdatad/xcschemes/xcschememanagement.plist (87%) rename {SwiftStudy.playground/Pages/02 数据类型.xcplaygroundpage => 02 数据类型.playground}/Contents.swift (98%) create mode 100644 02 数据类型.playground/contents.xcplayground create mode 100644 02 数据类型.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 02 数据类型.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate rename {SwiftStudy.playground/Pages/03 流程控制.xcplaygroundpage => 03 流程控制.playground}/Contents.swift (98%) create mode 100644 03 流程控制.playground/contents.xcplayground create mode 100644 03 流程控制.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 03 流程控制.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate rename {SwiftStudy.playground/Pages/04 函数.xcplaygroundpage => 04 函数.playground}/Contents.swift (99%) create mode 100644 04 函数.playground/contents.xcplayground create mode 100644 04 函数.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 04 函数.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate rename {SwiftStudy.playground/Pages/05 枚举.xcplaygroundpage => 05 枚举.playground}/Contents.swift (98%) create mode 100644 05 枚举.playground/contents.xcplayground create mode 100644 05 枚举.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 05 枚举.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate rename {SwiftStudy.playground/Pages/06 可选项.xcplaygroundpage => 06 可选项.playground}/Contents.swift (99%) create mode 100644 06 可选项.playground/contents.xcplayground create mode 100644 06 可选项.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 06 可选项.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 SwiftStudy.playground/Pages/Untitled Page.xcplaygroundpage/Contents.swift delete mode 100644 SwiftStudy.playground/contents.xcplayground delete mode 100644 SwiftStudy.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/SwiftStudy.playground/Pages/01 注释.xcplaygroundpage/Contents.swift b/01 注释.playground/Contents.swift similarity index 84% rename from SwiftStudy.playground/Pages/01 注释.xcplaygroundpage/Contents.swift rename to 01 注释.playground/Contents.swift index 66d3867..f77cd64 100644 --- a/SwiftStudy.playground/Pages/01 注释.xcplaygroundpage/Contents.swift +++ b/01 注释.playground/Contents.swift @@ -1,5 +1,10 @@ import UIKit +var greeting = "Hello, playground" + + +import UIKit + // 注释的几种类型 // 单行注释 diff --git a/01 注释.playground/contents.xcplayground b/01 注释.playground/contents.xcplayground new file mode 100644 index 0000000..cf026f2 --- /dev/null +++ b/01 注释.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/SwiftStudy.playground/playground.xcworkspace/contents.xcworkspacedata b/01 注释.playground/playground.xcworkspace/contents.xcworkspacedata similarity index 100% rename from SwiftStudy.playground/playground.xcworkspace/contents.xcworkspacedata rename to 01 注释.playground/playground.xcworkspace/contents.xcworkspacedata diff --git a/01 注释.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate b/01 注释.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..571edae4f57a0e9879f253812ec38371433eff5f GIT binary patch literal 13435 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 SchemeUserState - SwiftStudy (Playground).xcscheme + 01 注释 (Playground).xcscheme isShown diff --git a/SwiftStudy.playground/Pages/02 数据类型.xcplaygroundpage/Contents.swift b/02 数据类型.playground/Contents.swift similarity index 98% rename from SwiftStudy.playground/Pages/02 数据类型.xcplaygroundpage/Contents.swift rename to 02 数据类型.playground/Contents.swift index 7c83a68..f715976 100644 --- a/SwiftStudy.playground/Pages/02 数据类型.xcplaygroundpage/Contents.swift +++ b/02 数据类型.playground/Contents.swift @@ -1,3 +1,7 @@ +import UIKit + +var greeting = "Hello, playground" + //: [Previous](@previous) //: ### 常量 diff --git a/02 数据类型.playground/contents.xcplayground b/02 数据类型.playground/contents.xcplayground new file mode 100644 index 0000000..cf026f2 --- /dev/null +++ b/02 数据类型.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/02 数据类型.playground/playground.xcworkspace/contents.xcworkspacedata b/02 数据类型.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ca3329e --- /dev/null +++ b/02 数据类型.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/02 数据类型.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate b/02 数据类型.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..fb21093876c54c6749fe95925ef12ac366cab3d6 GIT binary patch literal 11995 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 N8YcXYd=8uce*l|a4 + + + \ No newline at end of file diff --git a/03 流程控制.playground/playground.xcworkspace/contents.xcworkspacedata b/03 流程控制.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ca3329e --- /dev/null +++ b/03 流程控制.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/03 流程控制.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate b/03 流程控制.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..1759a3a741c1823648dcbd91e75addf67bd4c5c7 GIT binary patch literal 12001 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 DJlFpZ literal 0 HcmV?d00001 diff --git a/SwiftStudy.playground/Pages/04 函数.xcplaygroundpage/Contents.swift b/04 函数.playground/Contents.swift similarity index 99% rename from SwiftStudy.playground/Pages/04 函数.xcplaygroundpage/Contents.swift rename to 04 函数.playground/Contents.swift index 590ad7a..d554c62 100644 --- a/SwiftStudy.playground/Pages/04 函数.xcplaygroundpage/Contents.swift +++ b/04 函数.playground/Contents.swift @@ -1,3 +1,7 @@ +import UIKit + +var greeting = "Hello, playground" + //: [Previous](@previous) import Darwin diff --git a/04 函数.playground/contents.xcplayground b/04 函数.playground/contents.xcplayground new file mode 100644 index 0000000..cf026f2 --- /dev/null +++ b/04 函数.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/04 函数.playground/playground.xcworkspace/contents.xcworkspacedata b/04 函数.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ca3329e --- /dev/null +++ b/04 函数.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/04 函数.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate b/04 函数.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..5cb5a37808c659476e47feee73939283d47d7507 GIT binary patch literal 11939 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 literal 0 HcmV?d00001 diff --git a/SwiftStudy.playground/Pages/05 枚举.xcplaygroundpage/Contents.swift b/05 枚举.playground/Contents.swift similarity index 98% rename from SwiftStudy.playground/Pages/05 枚举.xcplaygroundpage/Contents.swift rename to 05 枚举.playground/Contents.swift index c02292f..cea860c 100644 --- a/SwiftStudy.playground/Pages/05 枚举.xcplaygroundpage/Contents.swift +++ b/05 枚举.playground/Contents.swift @@ -1,3 +1,7 @@ +import UIKit + +var greeting = "Hello, playground" + //: [Previous](@previous) import Foundation diff --git a/05 枚举.playground/contents.xcplayground b/05 枚举.playground/contents.xcplayground new file mode 100644 index 0000000..cf026f2 --- /dev/null +++ b/05 枚举.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/05 枚举.playground/playground.xcworkspace/contents.xcworkspacedata b/05 枚举.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ca3329e --- /dev/null +++ b/05 枚举.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/05 枚举.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate b/05 枚举.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..37415d25d2ab18375f3464a77b730afc2da205d6 GIT binary patch literal 11906 zcmd5?d3;mVw%&UuX;Pp`3Q1@)HO*-fsI;UrW$X-vwv?tVb7N>uOCU{32B0Fk9j+tJ zv!c=zK?P^P0lml-CqPs{1QiicxenlfiX*;t&PmeN_ImHTzxT(ZKQf#>ueJ7C-}+V- zb$UI)kllU|VMLG!iID^)ASoI$Cu2Dq2zva!xf!lN>tYXlYs?7wJLhEh7cF61L&4z) zU$M@qRMa_UuwAUXG}`HHBtwZ!j*u(FQv8_mYcv!MLnBcNN=4_PF(?aVqp`@2a!@YH zL&a!3DnV6fDyl{8Xfg7jC1@$~q7LLke${R6#(cA=Nio9Hd{HhKpgL7$^9(3j{d zbPAnDU!ybVM|2kbg3e(vmf@jTfzz=WGdKfVuoc_zC_EaE!ISY6T!Kq+87{{axDwCA z^>`L;z%AH`&&Mvj2)AMnUV?qtk3;wZyb524FU6PPEAW-L2d~Eu;0<^qeh@!|AI6*T zX8Z_#6hDR^$J_AJ_<8&aeigrlU&p)g9{dhIgx|%7@dx-Ld>ns@zs29-AMtPacY+Ba zGBS)PNitEBRAM0MB!}dZJd#feNFgaAQ%DIZC6%O!EFk9-H(^N|SwfZ)FX<#9vXWdv zt|Dv5jpQbBGr65SPM#o7lBdWPvXyKjPm^cJv*bClo$Mg5klkcIIY17PcgbP$0Xa%O zCtr{+$yekQ`I-DeekH$=-$f#kSTsbW5T%N=qKu{tU)bwCfRd0LDUcG4K$_Wgj_jpu zS8yJ@M@^+Uqt)vQ1|ujL4X1>PB1nbQR7@Sz>Qt(#D=KIE151OQu2#0f-x}^y%$}8>n^%=pmRC@bWiQOlvlrzQRaEBKV+(7M8D(xnI;2MiWJGDm zgwm;mCQvDr(L_3g4&8_tlz}YBifm{U8cm1MBs!MX(V27>ZJ^n(jj{miTH5LN_(H+b z){tj87_i%^)K;)Gp*D0p6^GRsKLzLru`BwAZ+Tp>lsmr_!Dt-i?Z=f;(K+oL0Y^%?3%&@PxAa zkIk-U+g-tMu-@zHY7h9sK6h-Q31|{G(L}23Mw96XntcG3f|korIjTUFoSqlK5$D5u zfc3iIoGe9jI8Amc>)SkDcKq0}W1E5?l(9=ZVXw!x(i8BEjqNx%*0I9V7IK8b?yj-+ z0!yylQdwvzuCx@FS}OA`W#cSmmD!!~E$v6sP&Jy4X3P^z$>-`|=LjF!U{jp~1Q3Dd znmKijnY??7ouLlRLz$b^ z%|{FPKPNgLtY#5>b|aRi(G332LTz9@X81gcW^uyRI{e{4D_af{79^V;kB!s8At-p_lPAPRS*5H(Ro_`U*#*Q1r7C-_g(K{MQc zMtQvw306bVC19)E{pyM!ifUvr+qfM44QbY`qgJ8cRp{ykb&d)T+*rTQ6@boHp&Dk# zH;Dfi8?*-9fHV2tB_xCxCo{$$5lQN*8S%~k0HO=hgWB~fI4;U47chKwzcXWW5 z9H9W{&cU{Gt}ED77WR1Eb8_-ZbL@F`xAF@?M^B)wJ?KgF6xu?^(aE%&*2d2EG}?|b zd(boJS@aw&rsL^^9`rnV0j;MK=_EKAoXI+16aCh#4|x0maIsG1d4Jup%+@ToglJn25xZ1nGZ|x@3us0lz=QL9W!H!$zp|2HU7Hg+=4c z#gi(lrcSG#>1doYKN_u*LY`-)Fx?B_vu|bH^DO5Dq5pHc|SvTuG zpw`Gors@WX?cFI<+^vORJEFPHQRVlA-Z7?`(&c6*!(xRe4$lQFtkhQJb+re%>&1f4 z@N|L#ps^0TI8$O3gqwVo62f%?9SKI9UD^pT)zJmfw4+h>->f)gfM%2%0iF*~^@%7X< z)Ww`2pbFuvoJ{$nz=)=1r&9T6!A54+4e}Iv&z%=lc4TfHd|j~6sT|(NeB6RzMOt9^ zAkQH~NJd(KW1}GnD1x|N1F_iwfIo~b1ed%9fc-rH?C%F?|2Q~?mjK4Uie5*1&>QF= zI)*+2`2HIf;b8#Ulko_w#@RRzfO!LM#Pb1|y8x840Lz!+4uIv$0E$11Uj~r97w^Mw z0myz2K=y|KvQGfaK1n1b4FEMmMggFnNUBKd8h!XEd-+<@)7JbKgj}UZVN?+QdzVh-1E~7I9QGJho z5TwFJ(D$gOrP1$pb(vftlf8I+Zn4nkC-n25Z5sW=g>xam{K|oX;Z#JKm|*|Fm_x7d ztQ!+rPqX=sSc0|+9czW}iD>IO8vQ(sn*`u)d=jk0DUeuznGFX+Q-P^z@JQN7n`kqg zP3O?LblygsiWXoU)?*cb#RYUe&7ceDLTDZapR!v(vI2Im3V^p0f|>B3(Y2_|6`1V` zHVZ&*wkNdM0ZzxuLW@&5iW?cri-Zx*I!6N=1n0q_1s=F@mgH1U?%NdxmxCkYupRi8 zoU*dQ^0KPDtQ>oBaaMl$xQeXe;-Z4AyozxZWzYzjR53uznEu)Liv6cirpC|F==Xa8 zkyXdGE#QZ~N9xR_$Q;}d+NClCz5piaNf%?2PDD(6yNF0w&$eAXHsj|ZWdzelyM z;8H#m32VlMUR@z9J2lYBuLC=%cCQ4x7y8wOI~K74iowhiWQmj{LcS%Y(qsrW5}K?; z$(^>xl*4VKAWV+Q$}XBTc}gV&k9vm?_nk@u=z>#)3G~3J!NmRLpMFplN*zNdn zex(xVnF3^Lzq@WSkTsn^$GA`z&@%zvL;Db9#l!m=oUpfgr&0}1WBFaL2_6`0&&ka% zg8|T3DW2Fs`Dqykh<;?!aSA#diDZ{UxPk<%7jm zka*ukB4wP?qlsnJ)SPM6)1AuHm{x>63Q~w(^0fYKedpqP0Qn%N3OMJ#x*j0RRjXi^ zcJ9^)8wM4@wJ9mBn;EwUVdY3&1w5YB&>s-Ys%WvVENW}B=eOqOyIb4r1ETH{NSG*4 zY4@XzK%G4efc6lOWIq5Irom|tQ|&kx=i>rgh{xe#JONJvGOP?}uqr$a&j9+X4QQ@4 zKxgfO=z0`?g1^FN@i~Hkt`d_3psW-m6R4?DQV!IV7ig%}KttU`){!2v8R(}s$+zST z`GK4j4HspK#)>A3N<~#7hp1Ty8}azs7!9n^HxWzAq8=V+;R4P%XXCN3*Bsbw9?qvN z)Je~$F1m=eQa7+ZxQO5WcyQ7a!Nyp+oUWi3fNNgGg-|7!tOFAAI@fYfyO0)ekK$iT zffRBoli^WQ$m8{dJZx|_mx&4^t9`*v9?bQ2i;wKnjawi-d?Cyw&;;C|*iowRbVw)g zR1j@7ZKLgUaSzCNDz2p-_!{E2YU;<~#MjA=I}g}rj4g_{0@j-foKC0Ez~ywY6&-jE zws`PBU3^(v^0X7Jb8+aQAn9Ah?oifsOA$4+0mz4gDQJ`yl|Wr+JS3cbtF|0YT}o0XX&yVWId1k8eYGj>qzN z4|n2a0G29Oc6tT4Gcz3G7^Y?qyFw^6aH@?OQx6W{AgcL~`#Y73oQb@+OG1HKX8gm1>T;9Kd1bTz$* zUQ8*ygkDN7qnFda(JSbcoAK@V4tyuR3oXL;;I;T(d>?#Uhr8)j^lEw=y&d?sJLz5Y zZn_b^JxGu8?n`ibwZNr&xZEC?j}S079D^i;F>ok6@!bxdhHKkBR0IooG%qLyy*o3T$KL`I9IJXht52KUy z*~RdvlxoL*Nv^lq`6WpF@cb z;3N1w$R$ssi}3q!NC4t7-3xRp_|-noc#Ozw z;*N*NkMRkV3H)&OA^aIWiT??q<#YT6{t}SRDSR4#jlY5QVt}{C-^z!UmR>mtHmQyW z=msF@APlm?a~RnHNkngVfRz09X12xV>}{jnbS>?n8|Xb0YOZ7B{zEWf@PwR>g$a8B zLEMuFx<3QiE&iU~3)w9owV&WLKf?w7bzbi(P5k=wKDfX4_i_7z0MFq+fWHUj^txXG zlSgIh2}B6uobX@v8FBF+!oLGVgcL-KDoFw=pC4n*p^h_`qX>c_S4St1XAvrp_#}}G zftvxA7L!d(-VrjCTXe7{zyc(R$cbVe7m)Se~p2I1LF?$DfR$6?Bmmq=r#Ux|KxtH+&X=)3yhBKr#I}!xn=r1-3}zd zR{8?GDyh7mCnL>dw&2OgeEJ;S7IiSs3Nl&9$)tro9d{SR#kmXm%%8l&;5S;hyFhKX z`a7~+9Gjo*4)rPM{@J|%-|7>73((I}IJHHHpR;l9cLD?2gsm>)%r`)H0FOt)pt$8^ z1*8bAVZcPON_ihMpfA$*2dcS?)R9%>LNbe7#HpDc0l~dWcY@&F8z{I-$z@T&T}fY| z|A-3iWnnj0bAr2uzSJwY>v+NK`d(WW7+nCJ#dSnuW6H0`drA=mEH#+}}G;zRrT3WY9wp z+u@!JEcps~4Zxzo>b1fD&*kfXQ$HT8QZD3l;E_UX_Wwl*d!RVu6?DNop6ATt1$r=A zz9ugYTE31Mz^mjnp++5hu!rp9>(As3s6W3OA#Xzc`7l?19<1_A4)T@fK9{Y}MkA4g!;wjGz+F2wK zNn=o6B%@zMix#4x0NX{wL`n2ZdMX~HMM{zC&tRGyLyTx7$b1<6idvbHz`DNhTci`E z4H)qej4*?ahSAg9h|7f$NCrRHGs6$|a^NR=Q=mTA41#R|KChBAKz)n_MsFDjLXGSK z@R=78O70+kCws_y@UyWGLGd4hwm&2PBxm7=W51H$$sZyNKOBS8iHxENBAI z+AZ26IxKo$bX4?_=ws0*VwE^uoFTS~M~lxBXNkv)%fxl!dU1oeQM^(7xOlsGmw31M zP4Qvzr{dql=Ojo%Bv3S$$RtA~!z6NvQZigJT5_HwOEOlHBgvB#NQxxIk_nPYk|~l> zNsDB)q+9Zmi9fR}$V#cst=h!aE7?CLBq4KjCP? zX9=eh&Ln&<#Zn>_NhMObR3|k_M@tK(6Qq-*Q=}ErD(N)obZNcRDP1h}NS8`|(iKuF zy3hg64E@2NgeeW*I6 z`dam^>Wu0K)mhcgs$W&VtCea-U8J6_Zc#5&U#woEzD0eT`VRG7>UHXfdcAss`a$&` z^)dCg>T?>YCQ&m~lcZ5-QZ!nPUSrglG-ge)rdHFYxkR&8^N?n<=26WPnx`~dHE(H- zXnxfEr1>S~mXx(AFQ@EH`5|>)YJ2LERBx(3by;dK^`6xAsZXSCN!^zEZ0h#Z7gCR> zev$fR>Z#NpwIZ!vYt)*wW^IPnsvV`x)Q-_+Ywg-xZN9cvJ5xJL>(Dl7XKUwb=W7>g zom!W+Rm*DIwby9x(>|o#tNmFwRF|%ss#~J#(%q!nsC!=bx^Ay-pYCnl0o^;g&voDF z&gy>F{i^$2KSZCbAE8(4N9v7wlisY)&|CHS`ci$PzD3`z59wFwSL-j5MRhHnjL3_lo&G08Z>s5Xu?rW!MhS;iXUEMup!%Xo$HX5(7pea3ah zh;fr~r|}iz2gXm0-x$9$exJss`O+>(yEyIIv|H15r0q)kI_SkSWnL%p^A{ zO$Jk@X^bfwicGntd{d#R+*E0rYN|HPFx8r7nr4|;(<;-|rrS(gO;4M4nO-;TF}-2h zZ#rl?WIAj*m5$OA(}$(Y)0OEt>9y(0(l1NzPT!ioGyPcl@$?hvpQfKo|2+N6^i%0y zn`P!9=3!>JS!o__R+$ZEli6&}Fz1-_%mwBmbD4RDd5(FWd4ajbywZG`d5yWp{GfS< z`8D$%^Bd+j&4|k~>FEKAOuQIPQdzd$vH<`DYe==V%Uooed zZ)>bQPZMS-?0c*&*+`7_wf%QV`->f%S@3uZ^-C=#ry4$+fy3hKS^@#O- z>rv}5>v8J|8@3s3rM7vtcH0u0*XFk^vjuHe+HSSoVY|z=)^?w5o$VppqqfIwPujNF zcG_OE?Y8Z;?X$gOd)Icv_P*_??K9gM+b_1?Z0AOyQPNR~qlS)38l~U^5LAVPcacSS JkG+mc`5$W3=Dz>{ literal 0 HcmV?d00001 diff --git a/SwiftStudy.playground/Pages/06 可选项.xcplaygroundpage/Contents.swift b/06 可选项.playground/Contents.swift similarity index 99% rename from SwiftStudy.playground/Pages/06 可选项.xcplaygroundpage/Contents.swift rename to 06 可选项.playground/Contents.swift index 51838b9..d4a2bd4 100644 --- a/SwiftStudy.playground/Pages/06 可选项.xcplaygroundpage/Contents.swift +++ b/06 可选项.playground/Contents.swift @@ -1,9 +1,11 @@ +import UIKit + +var greeting = "Hello, playground" + //: [Previous](@previous) import Foundation -var greeting = "Hello, playground" - //: #### 可选项 /*: 可选项: 一般也叫可选类型,它允许将值设值为nil diff --git a/06 可选项.playground/contents.xcplayground b/06 可选项.playground/contents.xcplayground new file mode 100644 index 0000000..cf026f2 --- /dev/null +++ b/06 可选项.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/06 可选项.playground/playground.xcworkspace/contents.xcworkspacedata b/06 可选项.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ca3329e --- /dev/null +++ b/06 可选项.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/06 可选项.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate b/06 可选项.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..761741bc5d18cf45c209409040b426076be48f14 GIT binary patch literal 11937 zcmds7d3;k<_P_V0LK0~Dk~UkDG)q?sZPS)+DA0{U1xjgJplmTTuO-qZHA#Vj=tV^w zml<~v1Zj$(g8MSa;L0E(BGQ7gI3nPR3b>9d{LXzZNn2r@`OW9|*N=Wk^4?v}z4x5+ zJ=>kv-s%Yi?e+r*BZ4F-23>*%p}|N#BV{4)4|sgu#uS&oX}$-Z>QjQg_8BR@c~|mH z!GH?k8`nFzxEjYqzLR&Cg*)v>QY33|1YJR%;wQK>Xb2jLv`B~aXgC^yvQRe4L3Wgj z@=!h+iHgx!G!@k$2dYO6Xd0T1W}rsYgxrWn&B%`eD2O`HLbL=eL)V}i&BN@hSWT{t}=?ORmkceU|O zE-m_^-Zih><)7{fO!EXh^IG}op5T0k$J^4%LyMEk=)W#;3TKU@jt>NVeiw8XG@;TJ zbUC>({ky{83ZFOV_qDe2erJARd0uWg?0j5V8Jt0RWl>gfN!7@#k$FWWWrcff|N>Pc#?}NoI@HmYkA0r^eBbEwF}qPp}o(ql7aS8^n|5{UC0PQ-0tQbgK>kC{3$z zG*nkt&R~y|T^_HK<7ymL9)BPRgW7#wH}9WSX92B6sy>}=&H zy8;WGTzrIP^z^GMMY7}l?E)QGLA87F+(^Hgj<$KcpJFPZgQPM_WE6qa4_4AR5KbkB zlaH{l-VVT26WMvnP9y4~_#7UED9imn_ITJ92@x%fQVf?VLzub}Vvbd;y81=Y*i<~YddO1F4T!y06u*Ho?hg3a;pBaC!SoblT*Xnh%WU>V{eW< zH*aL&zgFa~d@AiK03G6bi%W7xU3wV^7o1d+pXa^e$u%@oS2}`zP!k|Mu*uXP?*Q?+i_?oNHfP z)ZA<@u)Fh%?Rj>vq)L*T zRE{c8B^rmS(0Hn(DjH7{sG4f1b`#+H*^OqQ*=P<;qy}p2MoxHiQ4>54XKS_0X!5!FY#2Y$6U>eh z%8nusEY!ib!h(2rv=yAP@qS-NyVwBI6^Kx50cgnFfaW6)$kGCuM9tJfts77qfP@dV zQ5#L6sqhJu6RJF|LEbNzuky~xunIs_pf<@B2u3Nf*G^8;;BCHWXPr0)?{26bI8S6f zi$I_?>(|p{Q9zcWs|TtCT8hSqhHC&xhY#2SDifLJTC^N#x)7ylUFbTR&b$g{>@GT{ z2h7=xXeGMI$tA+sGO?>=E^r;+?&kyGQ@EHu(qS}XiW09GXz6r%bE7B7w+Wj8aRAE^ zENg1w0|DL*(#p>bG%kEL?_`GuhVa`;;n81cXvC4#=!BW}K`gT`vej|7r{Nf27 zZ!jbu(%c`yr#pNdewdU)Jzy4xUW^XExZUMt&bhFX{IVU-s@Lp$>;%lN8rl^g`v(02ZaBtr94jE16{q10kyI2_ zq6-n<;{s7+Zb7$#vo>yVd#mVfP3Z`>dc6EJ55Gu^NEm~|;@6FCLw{xh^&j?ka`T+^ z!SNN-atkY`)%Vc=Rm>~wd+bNDzO$VV6ott-r#YPYxqbZvUO51Cye-vk5HwG-2RuJ< z8@Ho71pguegi))|jc#X35Rvq|&^;)#3*AjebfH-Q5}>H57l#M|0kXjccQge%{Csk0 zd#P}8k(t(@wQQybXigVeN9}ATYe#_h*ZTQp-tXt#6(Gwd%@1kKpEq zQ1^P8D=z#Yv=NM3c-duszpJww*t-dh0q;S0j0#PJ@S|Y3GPj`3XbXA_e83)+faK-omh;U%KVRW%Yj^oQ0iRa@#RfRaaKO-izPKoKZbR4as0;w3-8t~=!l)eSm;Cng| zT!Kl=TEq$47X^VaAh~q*E5aNc>IH226>P?D=o~r^n}lE@!uv_Qw?%LZ`n{XxYVF`T z%pp2OP!K>h0#QVCObAQRnEo$jPHE@8)n14kB32p?!h=yJSjEhD0TGAbp(qY;QGw$y zhm}}`<8cDmgoxWd$=4)Uths$>CCa5b>Lb+od_l0py!akQwm~q|*Bu;VVR=)UBXjn( z(OI;C&ZRC|PiH#0oG8?YVhqsA_$*G?=aWQ1N8mr!Vtp6Z(P^}?7aOnBRp~%TKf|tXO%E`%L${onL($fK^X0gZb z$%!0XAjh%D(;RewM0V!b3sdv#spAS#i>p%0s#3?5q!!y#i%Zy#vfR}2lI-@V=8OBZ z<6O{0knG5G5#EMy9^2ln;GF|4g0^OOatPTsHw2R`XZLS{OmPz>c+@P|LPXv| z_)?JfelNscqcQAHvuY zOTuzn0ZtOxhZE03nIQ<^T(p(8g>VzvPQ9QkunZLgjXK%4Un0tn-s#Um{@C@d~MmTc5qO#-NAmK;N-HR zc*~+cQII0okX_5SxB?x4KKJ1w$hi(bC}vIv2qu$~5MIw{v#ja`ZQ{v*m)C{6=`!&2 z@J86(Cj2mjRZSh>8+wBmjG@=ibr(w2qaamV@M9oVPcW&X4*;K5&})HDYcJ%}Gx*ss zpSIE)C=K)JdT}+|7@z(|m-q4MC4o=Z{qOiBW)bik_yEe>jCbQV@gDpZ-izPH`|vw> zKkmW3^hUap-bDXIZ>G1adM_SUwipe9=Ld%B!bZS=$sRBGrtRQ}U$mJ`RpEm=jH?Cw zM)O7cRC^bSS!(de73K-Ilu>Jc%h`*> z#K?uD#7J12h6QB*YR_dI!TCNvtmMKYVVRFAU#nY4B3^i$i~O$kNiee*l;E$JfSjgx z(ne8WzQ+0u_#2QB_)qTw&anTD+_ng&{)B%PQxC~6pA}p^lw9gwFZ_yhIZp`EgdjtP z=_-1Eh)75bT}{`}@JUAzi+G3lHbiR~~j)XI0 z41Jttirg%N(1nzf3i8Duh?xsEoF@v8prL^(pC9ZIoT;6q z_gE;~%0uVAxYE%ypKs&K!K%51sXW0>FyO!u5XXo`67%VdvEnZl{(D2j4u~oIV z*$3StzDcyZu8wbtnv}?7Y&j9;bdW{B955f9U1TxcPBSA7OUW|Uu!Jt`BG=Ft`x=&$ z+W_Cmb>w<-16e_CBrC~HzzJ=UMU!pJ5SLmzsHM)cTo$jQs(_Qq9&E(G_zN0pL z1j10jcXA&-N_T@ivp*Z)yAGr%mhJ(Z|9^(>e*mr*Gb8`k*#2+Ki>Qhl0pH0c`eqp4 z$)gv=_lRUXMV=L*`x$`lw?a_8h@pEKbYB#-!MOm?j*NYgyv6|TCGs+Pg}h4l(Rb*6 z+OvV|Ab%%2$?LS29-s&5yG#f)fRqFEAzYti>F0qB)5O~pVrF_^)0B3WEoRzx!Kkn* zvUE{L8_QdX5uSr@5kiE9@(xd{dq!@4S*|_b?&eO3XY~&1?uK$r59y`v(SOk6ebDtT zIRYgI@*X)v4%0*QFg?;uj*|Du4tkWn4?BZBvC8+r^$nm2`7@s%)ZfVs|KpD3V96Xj z<>1%!D4-k-ATHABo2lQjHB`!$nw4wl&d#xm#oX?^{E<)* zj)fvzJVe6cXtu8CI56r^ZLeo^s(2SmN;~*q5WKrUzb?8+mxk(w064nQrXG!A)MZ_l z!ljJ_Mte+|AvCrW3h7*^yh1DhLW~HrM`mUk}#rn>hDwEwRJU-yf;`naj)!5g{{DdhG`I-|NdY@(`zpB7J4_%3^O~_ zSObr<=Log*=!rm1mlfDUb745t*nj{2g6i=kxM<~obWaD=VOF49;rbM-0Xzs-r=CPx z(GIvkwF@p!?SYF^2hcI}2|9y*#S%Oe$3avU57(oz;W|_;Bt+`r3X~JOa1-XS2QPqB zf)A1iEAgXvC&W{4K`iwSeh-4A_wfgC;prq?cKVcD0+*PqaDgcUt}b0hs>vkM0GF0L zaA~OnZ1b&fJ&9rTHu5T9>~8V_IW9^o!QwY^hQGsKF4mdg+ZO|k1>gf$-nKy>V8fx{f}p2 zorH@d|F&m6BprpG$)!?pvpo_Sij&ACLl`WuoMf_4?)z!a4EmW6N=RZQ3J?@VBP5AM zW9HUFS+mpP3R>(Xqw?*7NsuVPd?F|wucEXD$Fi#CFA>EX`R2)M^LO1Qx{4T{)v$ym5LPzQ|VNh{n#3jlMMkgLfx za1(74*wa1a2$-4=;C|T&xLfuK`HWpAAit2`$ax8dJ7$-_{W6VYtmI0`X31X3=P@xc z<`_%Nu$Ww_TiPu3NtZ~km);>=C4Er(u=F|U-=(ih-;lm3eM|bb^c`uB^tkk-^keC# z($A$|NWYSvk$x?Uk!fYaWn*M@GF}#t1!c=+H_2|6-75RD>>k;DvioIgWNT%w$PUOp zk$o%sRd!B}vK zC-0FTkiRScTK@A8?GXJC!_aL*cMSb<=(n-P*yXV|$F7gv6#H!KUt?d0-5&c=>?^UK z#eN-oPJtB?#UO=LAy;H8iWJ3)QHlyhouX0UQe3H6q_|yir{ZqKy^2+e)rtoc>lEu1 zA;kv8M#aO5R~0)HI~BVWyA^vBdlmZ>`xU*4gNpYQhZRQ^=i*dxrnu6$wzzBK?uq+b z+y`-AahGrg&d!bIO1W}w95`*RO z-m1J`xmvkKxmNkSa<}r3@~ldtGOMhrWL2svT{TQKTs244tn#Q9sM=IZR4Y`ssBTmJ zMRkX2oobWnb=4l#Db=^CALDVnB0e!bB|a@aBR(_!#`wR)KNSCH{44Rh;}68Y8-FNa zVnThw6$yO8RS8QH9!hvL;b6jvgp&y$C47=_CgGce?-G7cOVpfNrG_hHYMnY!ZB!3a z4_9ZYbJV%&e071kNIg;QQv1|P)oavi)sL#5P(P)9M!i+NO}$wim3POMCvpSUt{W8#j)w-Way?oaGZ zd_VEy#7`4HPy8bBtHd*jUnibRJa0e-Vi;mbFjx&~h73cdA;*ww$Tt)iE;U?ka2V3+VrgHdDB+YHq&m?9@AdaKGS|vuj!!aJ=0;+*`(N{(xkd1U()iV z2a+C1+LH8m(o;##Bt4h(TGGy>T}f{yy_NKK($S=ElD7v(=nzPBo{Shna_)v&=c>Tyws;z+7amHwVo3nO`vf!y>U*ER~if%XOA+%NENM zmZvPwShibsT6S4>TlQG?TJ~Aqw;Z>ew0vwiW%<%_+H%%%-YT`qtV66itJRupO|_<5 zhgtKiBdvwjV(TdDW!463yY&|9OV+ok{yT?c22P)Bc(EQ`#@-mh^GyzV!RkL+P8-pGn`I{!;p` z^taP{(@&&-k$yV;Z2C9p=QBt~Ovd00S;mlzgbZzlKEsfal98H`o?*|(&nOU$9Aw&r Nf09)3JMx)P^gqB^ movq $0x10, %rax | mov rax, 3
mov rax, 0x10 | 将3赋值给rax
将0x10赋值给rax| -//| 内存赋值 | movq $0xa, 0x1ff7(%rip) | mov qword ptr [rip+0x1ff7], 0xa | 将0xa赋值给地址为rip + 0x1ff7的内存空间 | -//| 取内存地址 | leaq -0x18(%rbp), %rax | leaq -0x18(%rbp), %rax | 将rbp – 0x18这个地址值赋值给rax | -//| jmp指令 | jmp *%rdx
jmp 0x4001002
jmp *(%rax) | jmp rdx
jmp 0x4001002
jmp [rax] | call和jmp写法类似 | -//| 操作数长度 | movl %eax, %edx
movb $0x10, %al
eaw 0x10(%dx),%ax | mov edx, eax
mov al, 0x10
lea ax, [dx + 0x10] | b = byte (8-bit)
s = short (16-bit integer or 32-bit floating point)
w = word (16-bit)
l = long (32-bit integer or 64-bit floating point)
q = quad (64 bit)
t = ten bytes (80-bit floating point) | -// -// -//### lldb常见的命令 -//* thread step-over、next、n: 单步运⾏行行,把子函数当做整体⼀一步执⾏行行(源码级别) -//* thread step-in、step、s: 单步运⾏行行,遇到子函数会进⼊入子函数(源码级别) -//* thread step-inst-over、nexti、ni: 单步运⾏行行,把子函数当做整体⼀一步执⾏行行(汇编级别) -//* thread step-inst、stepi、si: 单步运⾏行行,遇到子函数会进⼊入子函数(汇编级别) -//* thread step-out、finish: 直接执⾏行行完当前函数的所有代码,返回到上一个函数(遇到断点会卡住) -// +## 汇编语言 +iOS使用的是AT&T的汇编语言 +### 常见的寄存器 +16个常用的寄存器 +* rax、rbx、rcx 、rdx、rsi、rdi、rbp、rsp +* r8、r9、r10、r11、r12、r13、r14、r15 + +寄存器的具体用途 +* rax、rdx常作为函数的返回值使用 +* rdi、rsi、rdx、rcx、r8、r9等寄存器常用于函数的参数 +* rbp、rsp用于栈操作 +* rip作为指令指针 + * 存储着CPU下一条要执行的指令的地址 + * 一旦CPU读取一条指令,rip会自动指向下一条指令 + +```java +r开头: 64bit, 8字节 +e开头: 32bit, 4字节 +ax bx cx: 16bit, 2字节 +ah al: 8bit,1字节 +bh bl +``` + +### 常见的汇编指令 + +| 项目名称 | AT&T | Intel | 说明 | +|:-----------:|:---------------------------------------------------:|:----------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| 寄存器名称 | %rax | rax| | +| 操作数顺序 | mvq %rax, %rdx | mv rdx, rax | 将rax的值赋给rdx| +| 常数\立即数 | movq $3, %rax
movq $0x10, %rax | mov rax, 3
mov rax, 0x10 | 将3赋值给rax
将0x10赋值给rax| +| 内存赋值 | movq $0xa, 0x1ff7(%rip) | mov qword ptr [rip+0x1ff7], 0xa | 将0xa赋值给地址为rip + 0x1ff7的内存空间 | +| 取内存地址 | leaq -0x18(%rbp), %rax | leaq -0x18(%rbp), %rax | 将rbp – 0x18这个地址值赋值给rax | +| jmp指令 | jmp *%rdx
jmp 0x4001002
jmp *(%rax) | jmp rdx
jmp 0x4001002
jmp [rax] | call和jmp写法类似 | +| 操作数长度 | movl %eax, %edx
movb $0x10, %al
eaw 0x10(%dx),%ax | mov edx, eax
mov al, 0x10
lea ax, [dx + 0x10] | b = byte (8-bit)
s = short (16-bit integer or 32-bit floating point)
w = word (16-bit)
l = long (32-bit integer or 64-bit floating point)
q = quad (64 bit)
t = ten bytes (80-bit floating point) | + + + +### lldb常见的命令 +* thread step-over、next、n: 单步运⾏行行,把子函数当做整体⼀一步执⾏行行(源码级别) +* thread step-in、step、s: 单步运⾏行行,遇到子函数会进⼊入子函数(源码级别) +* thread step-inst-over、nexti、ni: 单步运⾏行行,把子函数当做整体⼀一步执⾏行行(汇编级别) +* thread step-inst、stepi、si: 单步运⾏行行,遇到子函数会进⼊入子函数(汇编级别) +* thread step-out、finish: 直接执⾏行行完当前函数的所有代码,返回到上一个函数(遇到断点会卡住) + diff --git a/SwiftStudy.playground/Pages/Untitled Page.xcplaygroundpage/Contents.swift b/SwiftStudy.playground/Pages/Untitled Page.xcplaygroundpage/Contents.swift deleted file mode 100644 index 5275afb..0000000 --- a/SwiftStudy.playground/Pages/Untitled Page.xcplaygroundpage/Contents.swift +++ /dev/null @@ -1,7 +0,0 @@ -//: [Previous](@previous) - -import Foundation - -var greeting = "Hello, playground" - -//: [Next](@next) diff --git a/SwiftStudy.playground/contents.xcplayground b/SwiftStudy.playground/contents.xcplayground deleted file mode 100644 index fd729f0..0000000 --- a/SwiftStudy.playground/contents.xcplayground +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/SwiftStudy.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftStudy.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 86d4572b61259ae6c019cacdeda451908f4e7ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33309 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