From eb25db1f618fcacd74978462b52fa1e168cfda34 Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Thu, 1 Apr 2021 12:32:39 +0900 Subject: [PATCH 01/15] =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=82=AD=EC=A0=9C,=20method=EB=AA=85=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UILabel.changeTextNColor -> .changeStyle configureCategorylabel()의 내용은 storyboard에서 시행 및 코드 삭제 --- SignUp/.DS_Store | Bin 0 -> 6148 bytes .../UserInterfaceState.xcuserstate | Bin 55536 -> 60390 bytes SignUp/SignUp/AppDelegate.swift | 18 -------- .../SignUp/Extension/UILabel+Extension.swift | 2 +- SignUp/SignUp/SceneDelegate.swift | 39 ------------------ .../SignUpView/Base.lproj/Main.storyboard | 10 ++--- .../SignUpView/SignUpViewController.swift | 29 +++++-------- 7 files changed, 17 insertions(+), 81 deletions(-) create mode 100644 SignUp/.DS_Store diff --git a/SignUp/.DS_Store b/SignUp/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..42a542bb06c2d36b9a2b2aa9c14f69b55f49d7ea GIT binary patch literal 6148 zcmeHK%Sr=55Ukc50$%p$alSx^UoeE^3l{G}B2iJZ1O$(B%jfw^RzH*ttKi9lbVGOT z^mNUzb=ckpAj{Y70_XtD>54dNn40dZPwXr*iehKnV89jLu)%&({e42Y9eO-qhZl_b zTio%q15bK<+AaFc{&}z?8&AQkvh zK)(-#u2=(`qkTFUYy=?Am^S0H%@V|-31SUwj?B=+sYItrj2Pl{=1bJoz~<<5h~3O{ z;%12nMeKIwiGgvDoS}W#4Tk++nuIMxOYhZIUI`c*+=8u5tl9memg#sU`0U>4p literal 0 HcmV?d00001 diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index 3fe5dbed3b0496c9938ccd9acbdba1c9f70d6a11..1f87e9ac9b6fead433bd76235b4d9391048af9cf 100644 GIT binary patch delta 28671 zcmbrm2YeJo{5F0&GrPC#Za0O5^dr3&(nv@lJt37;Is^z1S`b1PZwFAMm!pe7LJb}1 zq97fV4$_fkp@|@%APVp7T@FQgfB*M=|M0oZ-R|t}JkPgIeY6SwcmYoD3TS3Vw<_&2 z%}UK`&H5Q9dKn9-BB~8lOtq&vP#vj3)L^QX8bS@FhEc<*5!6U(6lJ77q9#*QsM*vU zYA&^yT0(83wo^N(oz&;lF6s;FOKLZ@huTklO`W1nQOppb#K@MmQazPm=2Nj?#Xa_ohD$o=3 z0=+>k7y^cZVPH5I0Y-vR;C(O}d;rFQ55Y%Z4wwt(f%#wo_yjBjpMpA24_1JcU@O=L zwu2pDC-@v300+S#a2Ol`$G|!8EjSM@fZO1EVEh662z~;0z+G?;+y}paN8mT`JJdoJ za*&4t6rm34p#<$=6X*b)p$p7{xiAkF!8WiAmc#b21MC93!XB^+R>MAU0IY$7VJ#dE zN5IkW12_hbh2!DJa59_%XTX_o4x9@=feYahSO=HG6-Kxku7P{uKDZwqfCu3rco-gm zN8#7-1pF4BhZo>A_#ONa{siy9yYMmm6|smzJQ9$IbV!dRBqJNt1i2zNdr-bbU+2gr!VqKRk{ znt^7b1?UsB6fHxaqh06=^d;Jj_MorOUbGMGM~Be~bP}CH=g|dp9o;}T(Jgcv-A4~- zKtmeQG|kXjnx#3Krv+M~9cV||jdrJfX+PSZ4yPmNEIOOcp(F^IN^fG!my@p;( zZ=tu++vx4|9{MZ#Jbi(_NME8a(^u%L^fmfB`Z|4^zDM7uAJD(jPw1EQpY&h!D~4gT zj2q+57(EyR(~R+CycloBhw)_snFyvi6UoFe@k}a{#-uZOOg__{>A_SnJ(*riZ>E~* z!}MkPF$0-l%xLBV<|Af2^D#4>nZc}NRxu6CYGw_ymRZNFXErb!nJvsNW-qgk`I`BL zImVo0zGdz+515~shs-a`Bj&M@`IULXJY}9UueBO2rPXR#t*o`t+G?G(F4_ofb8VzH zN*k?>(Z*_9Xydf;+9Yj;HdmXcE!CE3%e9@gU9>~AL$$-S!?h!{BekQn?`ubEKhTcR zPS8%%PS?)U&etx`)@zq)cWOV^?$Umt{ZhMIyGQ$#cCU7y_K?B4!wzBxvlG~f>?C$FJB6LfPGhIDGuWBz9QIRoDZ9+b zu4UJ;TiI>wG4?onf<4KeVo$SY*t6_8_FMK6dxO2n-ePaFciDUFuj~`{Df^85jeW(w z=9+L0oFmtibK;yi7tWP)tN*8^G0Y#(~^>+#qf+SIZ6IjGV$@ZVWe(o5juM=5TYldE9(%DYuMU&aL1! za+|o%xXs*`+-`0kcZfUBUEnTqm$=K^cic_x7I&Nbk$b>B;-2st9`Q8q$T#JkcxT>) zcjeu9cRq@b=41F+z6Br0$MY@u1U`{3>%*7x6?|L19p9esz<1<3@tyfDe1CobU&9aN z-{S}I!}$^XX#N9!IzNM-$(#6D{A_*>KbK#?f5I>1SMzK5wfs7MGryhR!SCkx@#pyq z{6+o}f0@6+U*)gy-|^S^8~mUAU#3%xqfrp_f-E!BgE!nq!=g0i>YFom@ak|E5&YNcd>_9CH541 ziM_>Yv5(kS>?aNq2aChSG2&QpocN*mkvLwQA05;&0;b;%l8oN9puBcb&H`NEfCH z*G1`C=n`~^x)fc8E>oAK%hu)T%5)ucmAWcjPhB6~09}o4ux^5GqHdCIvTllQs&1NY zx^9MUrf!bzQ{7VCGTmC;I-_o@Zkukq?kn9P-7(!M-D%w!-Fe+*-4)$+-5uRS-80<_ z-53#G8`Vf7DzPUa|pQq2)7w8N1Mfx`SVtt9eR9~iVr|+uo zsqdw)(GS$WryrpossBL#k$$Rvj()LzxqhvFqkfZqtA3~cOTBToexH87{+RxZ{*wNh z{yY6G{cZhE`uq9^`bYZ5`adL%q?H6olw`?XYAQKNZj!s?Cxu9nQmoWMN|0Jf=~9N2 zBXyCwN|jPKsk_ues*-w2y`6Hv*D04C| zJIgMztL!Gb%O0{pZYF!mezLzDAcx4Ia+n-0N69VZ6gf*Skc;JVxxL(3?jm=WN5~`P zQS$rpX!!%#C@V6SbH>OY$x~#LJWF0Ee=0ARSIDd7&*abLeexmsuzXfNCx0uSmoLb- zWdK%AY^cqQ1r&(I3 zsaKjSQI_A!H7k}Vk!LiWG@Ui8G!2~#O7e%)R(9)Gl`?2h<%p%^+#*e-b(VW;OjM2%ru0^-JM^m_P?a;F zN7eAE!JT{5bRW{cYCvsX)qq~Ly>0mKE%m}wVZ8=xD!p2TYs~*-zsA>6B~-b_p`I$G z%9Q@ffcn3mTh_CtUys2is?4E?>O}R@gf>u}sV-Dks*>tPb*FkzRa8%9pz@wFNExiu zDnpc^$}nYk1J#>yrCc>WR6k9BDw=#BsEi;Wx+!{Pl;WjSl5dI`kj?v=g>}?uWuy{r z=9yAV5zSm}sqxeVjYA#vvGRT$HBlK&q)IU7Q&XuKYCWe>8OjGr&w6U6#-tbt1J(b= z3|K3)dDJHsXbT85tU{YfZZMK3nnBf3YgAD6)KY30wVYZ(t)x~_4b*C7tTImdQ29t1 zuY9abP$nvq8mP66pf)yw+M-Nu1U0o0)JzMguT)Tbl_^$G2P~kzp^mGdjw#dXs1wR` z3n*vm4E3#A!wl-2(o>o7uNpd2SE%nS0Im@Lrhi>7qQ0jdssMhVex!b)?ofBBd(?gE z0rj&oTbZNGRpu%4l?BQt%0lJS2I`ka08bhL{H`o&1hAwLz%l|Lnz99uAOJ{N+=u{Z z2?948J&*|iASrcqz(%QW1OS?Vrlf|zfkI--&dOy&)#8iAXyW- z9K?f`AOR$TBxS9#PFb&PP&O_Htu!W(3erHjvWZCipmIn#YI5|dPs;;En$V>n9~6K> zr$DSMTD%6?LMulIV+EBTb=Wu_V*Pss?dCbSMH z%HcXNMmb_y;u97<9!%AQt^gl{31A|a1SW$i%Gb&_$}#1*azZ(|f>Dw`7SUlQft0gIirNP507Xa(r;i$O?kc*#8R-#wA~W#b>)WXqE}XnMpzaOkE%8KTDkc*hsVJwmBSO@q;gBST@Ox!Gs^eM4~-mN1lLp! zFM-S83b?BLsQjedQSL4S-+}Ak2Dqu*Q|>Ddl%FjeHn+Uvf%=Z0m0t+jfAZLhyv%Udi__{nqnA!@w@G->Bx%5uq{7!{ee`L`6qNMukVj1{*@6 zB16MlM8~!WkB*KFkBy2MZLTYnH4E#Z4YXDMRQ@9MZC_O!(kCaRPq(u6sqNZ_M79X2 z4Ik84J?IFV5)rW`TlgeezH zxnar!Q_V2tg()9Q`H?$ea~KJuU^I+@v9JYOn`|n2`0lMa9@tyQDO z6foI@cBcwW*F#fHCxZmj-6_r{*C3HCwOnRQ1A_Yt?JPgoE^@i)=A<-JcCZKA*>a9I z%?Qsl-3>8N-Axn2^G%U~2BEj*lD>o7YipEro<*0pYT(F#HXg5oCbQeYHo=bvd;S0XwfIG@?lz(%wZ6on+rII@C>3Rpn@}1e zOtiyP`+Ag#2p1hN)m5o38(dpCsJ5hPKo9FX@=&2#JRcQcsw1X4)uSRr>em@lU6krl zHBBw)Uek{>8bYmiv_&1%I|@*~k(4KQ)oc2pP6~ltsZ`6p)?$^YFA*2&hPtC3s0#H& zy-;sdjrw4!JEnSIstQwtl3tkVjj3u(k@I~UP`^fT4YVjQs>M`4tGH_3DDYs#uZ!$l zQnPuLTPT%-6qN*wss2`>jZ=k&&`0Wr2pCfXEJq@=6l?V+qp7OMreJDd9h!!z_beiF zMJ6;yg*Qu8qd_D+g5PUQst%K^Rn+Me-srhM;lb+E6_@`3N@hB zXboD6)}i&78j7i5m>Q0$5ttf@sZp4EA5)_-^+5yL*ob@!+KRRjMcsiZqZRpBOnr>0 z396z_Y*f?(D&~WjQmmMdsF;tUuhkEx2peN8M}k=^+gMSbMrT#jXD~Ic4xPi)hgLlZ^ZqlCC8;Tn3`k7J>Qb$ zVrtQ5oESr8iv%>S!_?eH&@_p+#9`64>c{M==2?yeG}Q>1Zb~~7$TSI73+iYRKR>ZR zE~Y(bPZdxG-AuL3g#-}oZ3gt|fBcoa&HA(eI@rtt9i+0b_^q4FZi;SBClD6sNIHs+ zreo+>x&<9a$I~q_Rfnm1OfALKGE6PU)Cx?k#MCNGH8jwP78d9fI+aeNTxlYO)m9dW z-fYIy7FGIN%{;Vjqw-LUsWny}$_Nj1IbETCFtrv_>numYLx5art$Sy>tI9+dOl_#6 zD>1dPQTTKf-P^)MFO`W+Dkx%(#0z{zO8ge>?MA;x*IHl?R$*^@yM*eU>5=p}74|6l zeR?$g0d1re8q;HFqPj$rcVg;uOzpzd7nu4IQ@b%mBGXq5^oNbGC(sjBrKhK0(hO_# z&P2J1BAb=|8w>3DD(nTA+GmCRsS0}$y;%KVYCon9SdIiXC&yV~ub@|{unE_P>gWbc z9k#&kK(C`W5>WJdRp*Zoou@acI)Bux^Z#m~%3HizHMO{B>tlD&yDXG^u2OPLrDT(t zw4>ztW=i(b->8)AqxaJX=!5hj`Y?TjK1vf*CopvqQ>QR>8dJm;&ti($;p|Dsaz5K~v{=tr2kW}&1b{gnP)rR14P$#*Ix&s9pUzl#zZP~z2!eVdcl3@~%T zP%0<4R8F3oIk|4(q!Yt3wuBRgV|YejL`KKx8Hte@8%%wVsUI-)Bc^`B)E!LS#ne4a z-N)2}2FA|93FByq3JkI0pRJrceiIdbv$#gak8r~HW9nfeCrl9Ggb8Lsm|!)A|AHxk zm>ly6C%hcg$O#k0#1KvxlJ)#r$B<;{iG`CQrX`a^Krsm_Cr=3{OtKmfp1q?RLw;<1 zSO$}AAtFm9;&&1wm}E5-dS>OJfN87pP{V_sr&k5WNVI(!^X! zEyp*x12dc%sd6v^1G zX(QmeM!?H4XkrEI_y(|RBj8Oc;Lk8{umavn0K-$Llln0S2IBOHd@KJ3`~|aH1^guj zP3xFF7&uu0?`ICFLO(!+4xCk?A0|QvF6J!Yyo3fN5rd{||~#UkO3 z%z5U93itwZk-5ZNX09+-nQP2<%ykSrFfd@y32t5JWU8`ZE>pZ1N1w+Li>eHUX24BMW40vZ+g{n_Z@sm|LAT3xig5+8hj0ERYKGwMC@H z+5%OIsYHs}HmVfU-etPotn^f9+gnh!Q&DE9DBGwsq?rZl*rBVokBYKV+fCbD+e2HW z?Wygh?X9iGfV@5%1M>RT802D*he19D1sD`IX!|yztg*;dI~ao^E6QT4Tq_zu8dZ>_ z;oZgxa;zETL@hC~I_)G3O6s&zFeq)5+YIe2i`-1A+{)An&rvH}POb-45V?J#U1UM@ zsfwuWTLp;RIxN$YuA&C*a_tK3O6@9bgLbucjdrbe9R}?&=zu{-3_4-Z8G|kubj5&p zoo)@<4ULF4HzL}OL3b;nURFeXEt;y`uOd2tK@TgU!$ecHN3=)P4+d2jkeaJUqN##x zZxzKU?HLvEX$*STY0qL%-H7;tmb5^LH_~2G5%(d0Xm5g;B8eM`ypAq6w6`sQZ>fO$ z{rh@{yIRs~)S$hmy{~TDRvL=Ta%YRRN7!Ps#3x&hMD9(k zRd34@1FU1)VKB9hCF(cLLWC>Zh3#e`qEaPdIuR?|Lsj${q(Gk*-mYw4mUPh)pUn1G zLC=1x00}}J*;@7k74r~wC_9WD&W>P5vZL7d+0hux#b6!=^D$U}0f|WqG58dNMHnn@ zV2zEK$65r>5;B%pG1prKzrtd>tVu;Y3xhf<;=G5!Vhonnv2_?Mvw(7A zm$M{0t!G!LE^4_s(2$G^kPJs{c#%rGvFq7Q7E~KmR4a)nnZsuJH-?(d>~?mq3Tp?u zll`3C#eTtl$?j(NuwP-&fWc}E)?ly}gLN3J$6x~n8!_0_!0u~=b%;I89wDOq8iUWQ zu!u2#fx(xmD0iEI<+JBiU>7jyGq!kM_A(JAdxgD9KHp)m1%s{T<2E8nTRB6{w2Je4 z_D2=@4;bvIV}HV6rxp2q_Mt_bKda*WTvbt$m=V3+MM{i`^mb!^XaBGuf1x7Z^LB~H zT^&1WIGzCKC=PItLmbU9oR(ubVt9Ko*oOfLe#Gk>#NZGHhcP&U!O;dzumI;Iv{gg; z8#p^my09&c4se{bv=vVk_Zf={a~=dYXTac_M%7uOrD8rs5OE~cB$!YC$ChpAC)UR$aLHyKxFnT_ zvv1vHB0Sh-a9Qg6GBNnJjw3PXJb9l>rJFIIYpZcs%@uHkToKoXE9OeLQm%|E=PEF` zh`}WcE@N;7gR2-^!+?m9WG6Q;xVf5Z$FfhLex+VjwI%7fWW?0+J-ur4_R2Pt&roh88CBqhal^S07~I3)J_Zk# za-+ESIbwJ}W5{CgyD6l5O`EZr70bDC+=tvp+<5L|3?5?e6a&&R{U?SRCDKaAByO7e zz{%VcZYl=Ei$22O@lyIUH-nq0wvYgEV<<1F?lqun zp!GouxJB=H5Vx3HqSovg1|+%q-L$EPi_c1q3_JekmE2lx9Y<{H1qOd$@Y3|Shg-}R zZpS-Hf;Qae+%AQf$X^(|Qv4e0bB5cak+`q8y_?gkwmBGIn+JZm{oH|0Zw92(D{Cv4 zl2ZpYmE{E`>Mv{U4|6BT_y(cjDEBotl{>~ASIK}BhJf&aA;b`^AgxGS?lgCXwpDvb zNb7MPhBSs+^$RsmCCM`4C11X09uVQaHxI*GYy1;; zR})&Nu~lFlcMn5B@w1frS+l}?mJHZ;REO2M$Bm=+>i4Ibg{z@E2;hE);V_ttj~JjQ z86)w=6jT~8)RQ3)^N5HSrU)v*JSZZm8UCBmNFJKI*`Z|mVf2VRbN4#W@On+?N?yye zJje6Az>B;NLmLcjF|@XRWI$-Fyl9zaya^-D#t!fY$HpMg|CO{JwZ8p0b1*)kB zA3(eiZ{VBpp1c?D&HM1aydUpxnl`RUa|{g_HfzxM@IibqAHs+7VSG6G)m+hI=!xM5 z3^!uBr zhW;1^U>JyD5Qf34`PO_cpU3C(1$-f2#JAy#`4S96FpR}81;bPfb1^K(a0G@QV>lPX zrK%FRwC!HgqbiiBLT+_!XhEgv+87abk=;!CF^;Ck_$n1{>in^%=_uB>Y7{2lmG4Og z82L)R8{eJp!B=4zieVUr;TT3>*nGL_WeIP6cy&4i`Hx{FhB0I=$CSCQrq**aM2Wnu zq^e(4_u8r+rccJYgb(J25HH5pVi;A&55+KAsqP}HrOGS&4XGNOGPrb5Rh9MiBl%IL zlXKlnQ)X&&c_Tkwm8QaDehfdBAIE>le}rKR4C642$FL=a2^c0~n6y&kL%5$vK9kAJ z0$1X>2;<4>p%rNqbR)IXf9Ownm~1|D@W`&N8dN!`d+!nIfO2|9#_)laWWq*|oZ71X zgS*Jh)H0_04+|)7^SAHD>2+pp=I5D}x5)Hpyi;yyMa`hTg9lc2e^c*I`K2mti}=O- z626M>fngek=@@1Z&IohM`DJF>R`RPb%(U=EM4m%xHsB*Cllw1Y9+_W@8n5Gm9^X#m<-*$DYu9JN)x(di8{1rF^m2DF-_Ar!vYKoF)YHc4Ti-SmaHP0d4gzY9?{J+L{~{giAt85)syHN(aJK+ ztLhr8>KNg6jKk&u{G0`cKifepmTk?(k#*nC1cMJ)WJyb30Nk}73VV?Tke9q6*cfv15 z;-!cX(`x$ls~kAEsz+vZzbYcde@yOa9@{+F5F1S<_n5^faDV$CK@@aLFs!o7%ULH# z_38v6OEDWkS1;HK#Ao!va1bffNTuK)IFmpiI0{V#C*ntXV_1!0pQVC};3~Lb*cZco z7`|sZI59KMn+zKZJ_6ycKZXO9@XMOBLVyq`1PQ?!NeI!L5kiG9A)HL+yg|j&4nhQb zOVgIUB}AIiC(YmnU|6GQZ1_Oazz@2bk|r~rF+yw?*)hGmw6tn?ZMt=KQBC*C+UlAC zONACfoT=yJn4ovQg04Z4|9l08>hn#9Cl~p&64L*H=nbF@Aydf0a4?3%a)+A|rZh{= zRRQG*L}i9xIP8B1sOWD%Lb0Z;P%IGDA$DJ5S~#U|^Z(Y4lo#5pyzPC^$FZv>)5BkKgBM59a#r}~EW5UMqy%Y-VSr_f6vDBj0#G=?8w zXk11`3w?!tWT3ecLj^;O;TY4SsUsbS3d4lq!U$m`5yvRueX1p?tx-@+cv_4*aWrFD zMT6mo7>++j3XBoP3gd(iHEpSQezNJ?Y5vkU^>Qn-_6QS%i6(KnGn}NUB!8QlQl@*s zX~J~Vl+BrG72U6>`z7Ul?Z`6^*Ph7&NHh~Xp*C!4Kh$_mO=SV%={ ze1yelo2u(m$>1*WV{_C#b7F07s(0;OGpukxzY#eDYO4lS4X&*o&?~Kmd>=rjwKD^GWm8g!fJzG@9 z_N=OkjqG7*PY7R{?akD2oO`&iS2(0Td!MjhI3OIvkR&aHf(00UvP?KE91)HRhcR4; z;inibB411gW>#~j1=3kSd|9=rpUK6=TFdjoMdJK~3m7i06E0zBx$Z$<6TTC!o2HvQ z*m?}>3T?nt({@uE1|h~fX$|kvm!mnxA@~{w5+4kQl4+x-jYFHX3C{)6 zT5F6m!b=QSy@@lzE8+EYlYB zgGu5(#G1H^vS|DFBZ%u=|Mw#tL`O?V^J+D)l^J`ZDu^zko9YcjR}44RiNtGsX420K z4))ZnSSfmm-lC7_EBcB4A_-fYG2DX5Tno4j!|fREz;LG$*+q^qRn8CArPS6As_r(# zY%8(q8Pm*pElhC!H6cojQL7(~;TNX+^F!p8ViK7uCnkuA81BY!kI8>QzA-~ACb3V< z6tl!^F-L4I=8Ab@zE~g@ibWy`ta~xshv9w<4`4`C{}6^m*N{9UqjgLs&d7Z++O|9QeH&qd;5i=^8Z4y+oGGoZAx+u(1- zrQ$M;BrX?Mh%3caVuQFEZ8QD)X^HM3hBq<%1w+yXnqVqk)S~Zt&B7Jp263afN&HOQ zEE0j=!te(Sf5PxChW9a~I%uP$g{6oKV9y)`nUt~lHK}@D0nUzbiq=h;k z(o3ZC)%ofCb;O_ih2d+AG#F8DR7&SSpHYQJ#`lP^sv1yGRXdEd7V;|xRQ9SG)F;&J z_^eWUTh#x9e06bV`6BR7`JUCBB~x?H!0x(aOn5zFX>S{10RKI!9fhu81&J483)380iRI7};XPoB1Nma|yrA zSGlgj%9jmB!rOdx)GS=8>!jw*!fo*pB$4R5hNUA_@*BV3VpP!r5t*`y2{m`<9G zy-3FL7EkZecwJu$Bl5c#>2F~~HZ#)bS#-5JwVPNsL^o77OgCINLYFsEH%j-uZZt-A z7};ag1S1EG95ESBMot(xW8~7HYwRc1jkS#2>&9c`sy5(=%R}zwz87`m9(kHO7PE9} zPqA(mMsAHAi@Lc)W!^n>Z>`rNo!W`4Ta1xMovsce197Be=AEl^2nqx7c@xk5#FYS6FFwe3+i3nJ*$GZ zz$oHxq(;(@rTazo2#<7+b-(JKVALF=D2#~fi1{1u4NX54Z=~XBR&qx*^X^w&IiP!0 zTJNgveX9n&rRw7Uu}jb!p@oOochRuSLIV-tyJ!#(>m2oZy`*y%cS3hU1H5B4^i+)E zRUSwLq~O~;=$q&rtURP()RHu;)Uey=8TBrN2feG_P4BMvz$gKuM2wO!N`AwG_*S_4 zzjlE7Pz%^re}gruUA`6%SZG0u{%P;}SbYkycYOoxZfaS7yFRos4SKk5X&+K1St47?vI( zy-}~u{P@RoQvF!{IE)C4wr`Sd{doOEwa~jKky@WLO+WKrg*uU#PG)0xD%EE5GyXFs z>*uQWr(d9R)-QzNs{M6pw7>Rd`|Gau`@Us=`X%~0tKJd9I{a;a#QgLtRJB{FU!`x* zug0h&Mx8Mtv8L-AwbRdSj51`Zh$YH6zDecY_BsFeD*3rZB`g0{$-gzS!J?7G`$1xW zrqk=3jQ?>)`U7S%4ihqt!eEt*-i>5bnaQY8d%)i&n~u`3!`d``eM}2LWYrKy!r!{klXtW8D%+nmEEfP1-)s-zU7Vd*DVnHm?8e%)cqg4 zv;L0dmj3@{#a>NSW?N`6m<^S5P@96nT;4&2Of%wjYbqj5@;ejU2C2;Al%;l-*+dfY8Plvz zd4_d15t?mD!K7;9?xa2#O>cC_5}7jhzgYlbtyQfwlsIIGsKv}WX&6SP#uQ8%C4Hbe z*9>X2>X2sFj|h$e6vu$Q5rD%`kz9bE6uYCbty)qyX>E;O(x4OmljEjr6p3GRFBao7=4P- zVvLqxL}n{AX|z;nxkVEfnl+KQBNuyfV^dmfZfv4Omd57H_4eiOYJ~m|_AYI=Jh}cI zIu2q~eNc#JMy5XN!&0nt@0AXd-YIFHv|l09Z%MEu-ZjMibao~&t;E=yO)U@Y2z(RStk zaQ&cVVX<^m)tOruZ6p?936atd(j6k%H|qwayV5<3HesaBp04)u3Y8v8Pu{h3P0d*OwUW#%K>lUtzQtqkSu6JK0`t zB0I>Aq!S74$LIh?2QfN=(NT3lobms4L7Yq`OVrEWq{{#i(H;K(SP~}(%0Z2Nch=RD zUF29YGHF`8KB`&wgXxEBx7wQtkt0YqgG_Sh<7CKKj@C$Wj2vq+Y;ZH4!06}ygikez zm0QXQ|4w3wPMlOt=^aU|oGPbTZRtElq&w^%wj^g0KOyJHt>s)f52MqVET}+dF*>Ih zt!>u-pGmCT!D1`lzQb1FyK-2$hdh9|%L=(l?kV?@d&|{wAGxpGPbR+RB1V@mx{T2k zOqOh*YZ!fp(RGY&G{`j;e<=^PERT|jN4shDmn5?_{xgF$&wG*=$#rIj zDKAkS=AC-EUQJiYyzs`gQ$~5ES{>pF?!B=^d5yfD+=S9e=1#RI3!v)d4e~~e?ql@e zO}Z*?mba;e{*kW!orzlOy-OxDgWoFik9ASzjy(@~zkHyJ+=L92Wb~-6tr?VEJ(wIv zm`6?O<%6b;pG6wwBl2<5`z0Thzm~s|iI;kW(PNB$#pua0`GkCuwv~zcJjIAi`<{ns zp!l`TtLj;+jxSgqT|%0G=AY)lnv_9RmF@E?N7M|d%_jr)?TV{=^)_F%R{NrSO?}-Z z`LcXPzKR9(43h;oi1?W2rv95}*vfb0d#bazi_sr-GNI+A+Vg9ae<3};@*|m4?N5we zzv;Y_pUThQ(VZ*5(D=wNG5SmG+jyl^zp1lVs}Tb=>c7VN*l29XWaIyI2iwpZ9~&*E zHROJpQmTFb2IAG~{UvWbL9`(=HR^11n1&{Pi;Hg;*SR#H8em+`Rmv zk}~fBL;Ce2Ic7u)L%2bGqWVDcRs9iV`BC1bpd>ybvW9rH5>2(Hmu7&bOf!(oF{##6 zX@+UiG&ST*t!5DU+mHOOBHuzaE`!OXYE4ga!C>>QmF(7L*ir>qDkgoXyON$j)hPYPBO-(vfKn(%-b1rtR<#YL!w@ zNN%sF9?+v^SmW&l>1SG{v?(T=VWd}+2|+ajDhG|IZ@2uSwgh_!eh06}#$O3! zHF7JMO1AqNOg8r#4=2KDWE-!=W?5_Aj9Qgiep`=_%&vN^VKt_+JMD~QQ=eKg!(#&3 z!sin*d7_?Q#y61dd&oQpGF9Or|I)lQkF8)&hTfYB&SaR~oovz*NjB$+CEN2P3ax}R zGE$vG#-$6$;O`h=8rgd1l5n5wq2nw@i!o%6oFcJUEG5G#ZN>IvK&6`OjYGys#P`VV zI77+)IL2+_4bmG_LH4BCt2;rqo;gdlp1DXipZQ7mi|(cFFWqZBMfwgh$ksCL^j-8l z^!>?3GUN3V^po^c^wab+^d{0mt=BKpuOO|^)nr?l_4-?6mzZoxk=Bv~<+^lJx+gcW z?PObN+s9V19dA3!w$65$?F!ol+cmc9Y(F>Jeqp=Y_A5Ku&eqP!&c)8n&cn{v&fhN3 zF4!*AuF!6voyl&Y-KTbo?N-@swA*U8+itJje!GKqC+tqzowmDdch~Nb-3xohUT1G- zA7~$IA8(&vpKPCEpJrcVUu<7$Uv9s^ex?0J`_JsR*l)AnVZYaYzx_e`!}dq*zp;PW zB(RCGU6V0Q7B<<`F|leE{A;%w;Y~3(vFOy){%2`aP)9&=IG_<>42sKn+`HIt!?_u2{<7q#));B;55gn z!D)@tI;Razo18W~ZFSo2w9{#q(+Q_jPG_9XIh}X9=yciXs?&E)H=J%cy>@nYPId0# z{ITV>+0j`=NjM|)P5i&$Ym{$hFwD)V18Tt!sPNj;@_uN4YL= z-R*kA4Y>un6}a_xo9s5*ZJyf#w}o!Y-PXHpbobFSxn&qba~JnKD|d2aUn%JZP-Vb7zUCp=Gip7A{A zdE4`m=QGdWJzsdf^3r$#FXUz8W#`qz%h9XW3ww?A`p|2<*H2zgyhp=uGM^Pbt9(}bto7OIv)yN> z&n}-YefIbq^f~5p!RNNmufDFn*}naKhx$(U{nU4fZ@uqw-<7@%z6XuICw#B?-toQX z`@r|1?<3z|eV_VKe$bEh)B16Kf}hS$@^kj{^=swV%Mbg_@>}e;%5RO|I=>BmpZgv5 zJK}fL?;F2!emDId_&xM{K)1s)0fI`CNFiNI5V*8;Bx-VD4Q_=7Rw=dBuMA!tye@cS@aEuc!8?PEUj*+7-WPlz_;m2u;BSL3hJ=MAgd~Nu3P}rD z8nQ9uvyd$z+e4d%`h@z0280HOei%A4bXMq`(D|WH!ZcwZ425aKD#HeZ4GbF;HY99+ z*r~8HVdugwgnNaDhc^$83Xct+5I!e-UigCWPs5)_&=J}QE<%jx7Eu%NUc}&tp%JHy z5!WKFN8F6~zIkNxR?SnJr#H`PKBxK8=F6L}Y`(hri%2GtjpQSBk=2nyBZo(hj2s<# zEb>z1mB?$6H=Z_=IQ3s4sR zV%x@6#tw)b96Ka-cUocP@M zHt}Wg-Qs)2_lfTxKPY}k{P6gZ@y7VE@gK&IkDnDkKYn5S;`n9pE8-jC*Tk=j|2+P9 z{Hge}@#o_&#b1rT9)BzThxj}3FXLae)U*UGQA=%0zNOew-_oX~UCZ#6g)IlSoZWI~ z%j*d+!80Kxp>;yOF`+1-IH5yAkAz+ceG>X73``i5P@8}g#wCnTn3ymnVOql4gq;by z6ZR(TPdJkBO~UbnlL_A?+)sFv@N2@egg+AgOn9A0CCZ6ziQ$Qni7|ytJm zZAsdev?u9E(l<#bl1?X`OFEx)G3j#BPf7QZeolIn^d#w7vTd?QvUjpyazJuuazt`e za!hhYa&~f?)+UBwtFtl6)=sM)IxX?~{KtCf`lI-->PJ*DAMF|5h_vZEtm@)gLKNDV`}lDgG&e zDUm4&Dak3RDH$o*DXmlTQre|-OzD!+Eu|`@SIW4Q87Xs8=B0d+vLt0`%8Ha#Dce(a zrW{K7Cgpg_sg!S1E~Z>bxt8)EXPc7+AP&O)h{(ZH8C|g)kw1N z)XdbJ)V$P!)HbOlsRL7|rEX6BHuXiCM_O81w=|qKF>OlP^t732pQJ5ITbZ^xZC%>N zw9nGEq-{&vpLQtiXxg!~lWC{Z9;Ura*QA4VI-O6~rOWBI>CMu;(?in3(i75C($ms2 z({s}c(%Yn$q<2fNNgtE`Vfx4ElhUUe(`Tg5N}rp)ApO(yjp>`yx2A7T-N=I+eBnFlhB zhcds-yp{PZ^LggW%vV`d7Ru6Q@maboIm;`{H_JaOFe^AKEUS4|bXIIud{#nMyR6|^ z3$u1--O6UOgR^t9`(zK!9-2KOdsOzg>?zsPvrXA^vgc=ilKpA+;_S8A8?ryk-kQB5 z`}6Dz+23d1&3=&mF#AdNZ`m)hU*_;Rx*P{%j#rL6R=RPNc_^SPIDujXFQ zy_Nez?w#EGxv%o5JeWu4Y4i9zU7nO@lV_jjkQbR(oHsOYUfvgZxAK{MpZxUv{QRQ) zlKis#&iTFa`{eh}ADBNle@OnA{15X#&YzS&HGjG>e_j6P`FryB<{!vEn*UAyiTqRf z*Yj`YKg@rU|1AG`{$Kg83qS!Xuq!YWL>9yp#1$kIBp0L>WE5l<nf`J8t3Tg|66^tmDQ?Rw*Qo+kYkHUcWo;R~Bw8++4V=a7W?Z!mkUD7oI9S zTX??kV&M;k#yf@g3m+CfE__lX7r7OA7WowU6$KZC6-5+97Nr)Y7quxWFKS!Vp{Q$7 zx1y?|UPVKT#um*fnqRcAXmL?}(ek2IMQe)I7i}s!P;|KHXwf%C$BRxCohdq3biU|P z(Uqd-Z5-RQY}2U?ZnLt@H*M|}bH%pBO^TZqI~RKu2N#DGH#ZhX7q=*mFHR^@Grcy96h;#I|Kigy%$S-husU-9AMqs7OHPZVD( zzE}KLiKYaWFeO}xSR$3!mNY48S`t(eS`uE;ydq|G4ZYkYfy0i3r>Fv@x zrT0sJF8#IiS?TYkFUr_5zRa=AwamS&S($H{e_2pjNLfNzPFcsYE@j=ys>*to^(`Av z_Fh?S*|4&SWmC$gmCYzKmCY%eSGJ&RVcFucy0YD6*UG7Kukx(&{>JhdIa`5)zfR&W(!g;Zf%(WJt$BB~;#BC{g9BDbQbqPU{0qN1W_ zMRmo{icuA#E0l^4E5=t$te9N!NyVy)T@|}4_EsFII9%~{#qo+$6=y5XSKO_5Q1P(h zQN^zn&nkYecv11P;#FHsTer5xgtlGVj%mB1?Xk9x+DYv~+r_qvZ+PGKLT3f3z8sA>m`+Yw>|HS>^cH{Qp ze#RZd>2VGmg!AJ3xO!X|7sDlRXK;8-6H$1b!5LEPfn* z0)8TXGJYC<27V=e6@CqV9ezC?hbM6H#dtEFhA+YM@HO}>{vn|Yp@6WCu!B%V&=ZUV zGr>x56M_Vk5G5oCDME&Dj&PB1g>ap4lkhvCmDriso!Eoei`btykT{q)lsJJ{K%7OK zPh3bWB(5NSPh3M>N2C+WhPc#x?Vt~jE5m91<7$+u)8R9Ww z1MwvBQE|uO{NfeGWyQMUNb&XJx1=0Wdr~LTr=(t_L8Kw1;iNp$7}A%dainiaGfA^a z^GFLxi%E1+8EF@34{1M%OX86PBoRqVI!rQ?tRx>PNUA4ANEj(a%94(gE|cz(UX$LE zT1jo>94@&%xf8hyxjXrD@<{S%@>p^{`783*$)Vb8PRPK5zj!LAGsWd8s%A#)k*QxQS0;-5Ap-QQ8 zY9&=o)lv^rk5KEWSE%o3xwN@7CQV9n(i&*zX_shMY1e6YY0b13v_ENo)85cpXsxsl zw2$;|^d9tH^uF`~^nvtg^o8`L^yTy-`da#WI*v}DbLgAtyXkxBLb{Youb?aG8hSPT z2;D$;(NX#-`dRvU`X%~RdL#W7{Wkp`{UN=D{+`}e@<~a%k`5)EOS+VFE9p_vvt&Za z%93p*>XQ1BTZ|mWFvc9l62@{y5n~kt$DlD73>IVKzqF|AUnS3F01P2R!jLiKj5b@<{>7Zd6=nZ8ksdr3)9YYFkMU!6J{dJAQNL=VcucB zEA3vIS3144sFYdCE!CESrQyr&(uNH&}OB4_J>`&8%0f*Q~d!R@MjhX!g2)=Xo((!Pc`aY&+Y* zcCr2JARA>z*>U!9b_4q?`v&_i`vLngyP5rp{hIxj-OB#J>B#w%^EqcQCyz6R!_DW6 z=S=2I}VLr&O<3oHe-_H;7>-k}Rl>c7PRWMmV7Vrc|1*qVd;F{ou;CI0t!F|Ca!BfF= z!Arqk!j8hu!mh&4ggu3Qg#CpBg}K6^!r{WnLT;guAlxDZgi4`ZhzgGjFA5(En}sig ze+vH=z7f6?eh_^k`j4oiXpm@#Xt*d(G)9y!8ZRmkO%hENO&84+;Y9mHa#2)tM)X|V zRh%zgDLy2Yiw}$SVx!nBwuwQpUmOsJ#HctbPKcA@o8mUfP{~BeT**qwD#==|WW59@ zAxJh$_Dg<}{46;r(Ml{5SQ3!bOCplEBq_;Aj!P~}u1c;;Zc2Wa+>zXqJdivp?_U0O z`TTNbIlmk%KU;pa{91Wq`Hk{6X;*1K=@-&m=}_qi=_qM|bdq$6beeRAbe43EbiMSD z)FBN@QE60~kfx*=={YI)y!3+flC)X+R@y3UljX?T%R0(>%lgRr%KFRlWK(3{%4W)D z%jU@z$_i!6WGiJP8C6yyE0u9%n`LFP9kSiBy)ujJxU9LNcg55SLdC&~P{rkn*YbAq zLGmH;;qpBB7ue4OgDlb&FR<@~fRR2*eRjpSQt0*eEimBSHDpT!H?N;qosZ>W) zCY42HSAnW?s*9>Cs%xr7)vc;oRm>`O)yAqVRb^FV7gGOk*pmaA*kK6ON$RsW`LRNqqHR^L(IQ$JKc zQNPpl(hSlJ(~Q)N(u~zi)GXB$X_%UW8os7N18Mx4i<;Y-=bD$Azcl}7S~Tx9AGO`I zpJ{t)du#h@2WSUr2Ww|(H)ywME3}|Cpp9#j+Kl$N_JsC=_OkYxwo!Xa%WcxW(GAwE z)@|4Qq&uiPqyuzH-C^A?I=#-X!*mV0Q@XRd^SVpATe{o2d%B0ZC%We9cGdl=zph?Z zy`lQYYFss;dUrLyT2x(LT~V#9R#m&JgVh(RFIQhX!a1_zh~bF!$Z7pV{cQbG{R;i} z`Zf9=^grt9dZwPO-=yEl)o<7D)XVg>`pf#e`Um>Q`eywL{Y(7^eVhKHA;&PlFv>92 zFwQW+Fwro{FxRlau-LHFu)rfH@brdg)BrUj0=t!b@k zGv}DwbIl#i1I;7NW6k5t6U+tXS>}c2Lh~~7O7lAN1~bk~G?UDm%=^q0W}Vq&cAF7% z$Q(Au%o+1>bA$Pm`HZ>A{Mh`#{L#|QGR!i`GSxE2vfQ%DLbR|g9Lq+_X3JiS+)`ul zTGE!^Eq5&UEsrcuEzhk(tz)fItlwI>Gp)0&^Q;T4h1R9k^;W92)XK4Lww77N)=I0_ z8n9lp-nQPeKCnKvezbM7^|1A{^|4K~&9=?6EwmNd*4W54s*P@A+IHA>+xFUivH>=i z&13V~5L?hzZ%f*mZ7=PE?0NPv_I&$S_UZQd_C@w3_T}~>`vyDSUd**q>~uTBzR#|- z>+Q96#E#md_JloSKW=ZZpR_mGU)fu0KdBG(evGS^xc z(M5LATnrb>#c}O%?ROn;9dhwqLYKwmbp>1@SJ;(sC0!ZUG1n#69T)eZ>#?iZ_0sjq z_1g8u-O=64J;^=QJ>5OiJ=;Ccz0h6gUgjpdX>Nv_<=*Jt?B4A@;6CK$yG3q^TkAgT z*1L`FfIH;QxR1Gib)R%!bvL?ix|`e&-G90NaksczpDlAi@A=tN z?y2x7JSvaTWA@lQpeNu7c~DQ(!)@@K@|^LU^IY}Z_dN1E^*r;mc)NLfczb#KdIxw1 zd53t1d-J?wyfeJBymP$sybHXGy-U3-yhYyC-nHH`uhNTnFMC^jLwyT;G#}3=^~rse zzAB&IXY+x+Iv?co`TRc2m-Zd=HTX{X&iJ1C-uT}8+Ta|xBixw_cZIvdx$qEp99#f@ z15bfxz_Z}F@O*eRjE9S13QU8y!aLzT@P3#J1F#Sl!y5P(*Z`Yg8w|pAup17;2{;93 z;S=y__$+)5{uBNiegn6_@8OUBcK#0j&i=vvVg8Z+(f%*}8j)K_6LJ@M!bSc;T9EfhTOckzhQS z3^oOy1z!YT2LB3u5^5J}ALx#(Bu z6m&K^4_$~BqRY?~C=Ml}WR!+7&{9-@s!$zz7}cXSs0Fp7AR0n5Xajl@J%e6AFQHe_ z>*!KfEZsB)mLa6kZj^g-gPvVNQ5+xGcOQyekZZ zg<)}68n%XgVJ;F5g~Q=f;cMX=;ork|!Y{%v!>_`xBkdv`BAp^#B0VERBEuphBcmc~ zBIF1svN=)~*%8?t*%uK+#1Uyk9;u9|BicwJ(inLW?Gqgzoe`ZET^KElE{m>?u8ppb z;-Z8oCwd@ijDpd+C=~TZW6@MJ6Fn9^89l>|o{L_HzKFKQ+Q&M^I>)-iy2bj&2E+!% zhQx-)M#jF05o3}V6br?$SUPqr_G|1ytSNRk_8|5+_B8e^-Z|bkJ|aFUJ~losJ|R9a zJ~=)wzA#=GUlv~(Ulm^yUl%9GH^zl=cl>z#di-vpTcU4bU}A7$SYkwCeB#>#cTr+- zqA;;Eu_jTGP$vutQ^Jz4C7?t@;#A^n;*Z3u#OuV{L~EiA%fZ@Xov>VNC^iBcg^k7X zu}Ro>*c@y=wg_8-EyFfoc#MdVu}#=kY&*6K126$5!pbon_6w%RjF=tsV?hkXBG|83 zBX$eBjorf@aCx#g)7-Dp6Vfx&bJGjbi_^=~Md{V)wP{M4 zk!GbgrpwYh(!0`o(t>n(x+1MiYtq%}BWXk0o{p!}>BjW4bW5gPrbDK4rfcT2O#jTl z%;3zh%*f2B%!JJ1%<2pw!^&*S?9A-R?9Uv?h%%ClG*gjLWGXYB%&E+aY^Q9W{n`H6 zf!V>?Vc8Mcso6Q%h1tUFvh0d1E=$SMv&<|zTbA9C-Id*&-Jj)WE3&_2YqHjCZPuCf zWsz(!i)JI)Z1zmHF?%a}J9{ttAp0oWdaTc}!6&N!523XCUwiiZe}3}6o;dPf23RJA delta 25849 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 diff --git a/SignUp/SignUp/AppDelegate.swift b/SignUp/SignUp/AppDelegate.swift index 8ea4529..952e98f 100644 --- a/SignUp/SignUp/AppDelegate.swift +++ b/SignUp/SignUp/AppDelegate.swift @@ -9,28 +9,10 @@ import UIKit @main class AppDelegate: UIResponder, UIApplicationDelegate { - - - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - return true - } - - // MARK: UISceneSession Lifecycle - func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) } - - func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { - // Called when the user discards a scene session. - // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. - // Use this method to release any resources that were specific to the discarded scenes, as they will not return. - } - - } diff --git a/SignUp/SignUp/Extension/UILabel+Extension.swift b/SignUp/SignUp/Extension/UILabel+Extension.swift index 11cf3c2..99f57b9 100644 --- a/SignUp/SignUp/Extension/UILabel+Extension.swift +++ b/SignUp/SignUp/Extension/UILabel+Extension.swift @@ -8,7 +8,7 @@ import UIKit extension UILabel { - func changeTextNColor(color : UIColor, text : String) { + func changeStyle(color : UIColor, text : String) { self.textColor = color self.text = text } diff --git a/SignUp/SignUp/SceneDelegate.swift b/SignUp/SignUp/SceneDelegate.swift index 714600d..5f903a7 100644 --- a/SignUp/SignUp/SceneDelegate.swift +++ b/SignUp/SignUp/SceneDelegate.swift @@ -8,45 +8,6 @@ import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate { - var window: UIWindow? - - - func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). - guard let _ = (scene as? UIWindowScene) else { return } - } - - func sceneDidDisconnect(_ scene: UIScene) { - // Called as the scene is being released by the system. - // This occurs shortly after the scene enters the background, or when its session is discarded. - // Release any resources associated with this scene that can be re-created the next time the scene connects. - // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). - } - - func sceneDidBecomeActive(_ scene: UIScene) { - // Called when the scene has moved from an inactive state to an active state. - // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. - } - - func sceneWillResignActive(_ scene: UIScene) { - // Called when the scene will move from an active state to an inactive state. - // This may occur due to temporary interruptions (ex. an incoming phone call). - } - - func sceneWillEnterForeground(_ scene: UIScene) { - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. - } - - func sceneDidEnterBackground(_ scene: UIScene) { - // Called as the scene transitions from the foreground to the background. - // Use this method to save data, release shared resources, and store enough scene-specific state information - // to restore the scene back to its current state. - } - - } diff --git a/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard b/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard index a915d61..bb09730 100644 --- a/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard +++ b/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard @@ -24,7 +24,7 @@ @@ -36,7 +36,7 @@ @@ -47,8 +47,8 @@ @@ -60,7 +60,7 @@ diff --git a/SignUp/SignUp/SignUpView/SignUpViewController.swift b/SignUp/SignUp/SignUpView/SignUpViewController.swift index 1388f11..20bc617 100644 --- a/SignUp/SignUp/SignUpView/SignUpViewController.swift +++ b/SignUp/SignUp/SignUpView/SignUpViewController.swift @@ -18,17 +18,10 @@ class SignUpViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - configureCategorylabel() configureTextField() configureInformationLabel() configureObserver() } - - private func configureCategorylabel() { - for label in categoryLabelCollection { - label.font = .boldSystemFont(ofSize: 17) - } - } private func configureTextField() { for textfield in textFieldCollection { @@ -70,13 +63,13 @@ class SignUpViewController: UIViewController { switch usedCheck { case .ok: textField.changeBorderColor(color: UIColor.green.cgColor) - label.changeTextNColor(color: UIColor.green, text: "사용 가능한 아이디입니다.") + label.changeStyle(color: UIColor.green, text: "사용 가능한 아이디입니다.") case .used: textField.changeBorderColor(color: UIColor.red.cgColor) - label.changeTextNColor(color: UIColor.red, text: "이미 사용중인 아이디입니다.") + label.changeStyle(color: UIColor.red, text: "이미 사용중인 아이디입니다.") case .wrong: textField.changeBorderColor(color: UIColor.red.cgColor) - label.changeTextNColor(color: UIColor.red, text: "5~20자의 영문 소문자, 숫자와 특수기호(_,-)만 사용 가능합니다.") + label.changeStyle(color: UIColor.red, text: "5~20자의 영문 소문자, 숫자와 특수기호(_,-)만 사용 가능합니다.") case .none: return } @@ -101,23 +94,23 @@ class SignUpViewController: UIViewController { switch complianceChecker.checkPwTextForm(with: text) { case .ok: textField.changeBorderColor(color: UIColor.green.cgColor) - label.changeTextNColor(color: UIColor.green, text: "안전한 비밀번호입니다.") + label.changeStyle(color: UIColor.green, text: "안전한 비밀번호입니다.") case .outOfIndex: textField.changeBorderColor(color: UIColor.red.cgColor) - label.changeTextNColor(color: UIColor.red, text: "8자 이상 16자 이하로 입력해주세요.") + label.changeStyle(color: UIColor.red, text: "8자 이상 16자 이하로 입력해주세요.") case .noUpperCase: textField.changeBorderColor(color: UIColor.red.cgColor) - label.changeTextNColor(color: UIColor.red, text: "영문 대문자를 최소 1자 이상 포함해주세요.") + label.changeStyle(color: UIColor.red, text: "영문 대문자를 최소 1자 이상 포함해주세요.") case .noNumber: textField.changeBorderColor(color: UIColor.red.cgColor) - label.changeTextNColor(color: UIColor.red, text: "숫자를 최소 1자 이상 포함해주세요.") + label.changeStyle(color: UIColor.red, text: "숫자를 최소 1자 이상 포함해주세요.") case .noSpecialCharacter: textField.changeBorderColor(color: UIColor.red.cgColor) - label.changeTextNColor(color: UIColor.red, text: "특수문자를 최소 1자 이상 포함해주세요.") + label.changeStyle(color: UIColor.red, text: "특수문자를 최소 1자 이상 포함해주세요.") } } @@ -147,10 +140,10 @@ class SignUpViewController: UIViewController { switch pwCoincidenceCheck { case .ok: textField.changeBorderColor(color: UIColor.green.cgColor) - label.changeTextNColor(color: UIColor.green, text: "비밀번호가 일치합니다.") + label.changeStyle(color: UIColor.green, text: "비밀번호가 일치합니다.") case .wrong: textField.changeBorderColor(color: UIColor.red.cgColor) - label.changeTextNColor(color: UIColor.red, text: "비밀번호가 일치하지 않습니다..") + label.changeStyle(color: UIColor.red, text: "비밀번호가 일치하지 않습니다..") } } @@ -174,7 +167,7 @@ class SignUpViewController: UIViewController { case .wrong: label.isHidden = false textField.changeBorderColor(color: UIColor.red.cgColor) - label.changeTextNColor(color: UIColor.red, text: "이름은 필수 입력 항목입니다.") + label.changeStyle(color: UIColor.red, text: "이름은 필수 입력 항목입니다.") } } From bb74bbc8446a84feb975ed278a7da30ab0ffd55d Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Thu, 1 Apr 2021 14:41:11 +0900 Subject: [PATCH 02/15] =?UTF-8?q?Custom=20TextField=20=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FieldType, TextFormError와 관련된 UILabel을 속성으로 갖도록 정의 --- SignUp/SignUp.xcodeproj/project.pbxproj | 12 +++++ .../UserInterfaceState.xcuserstate | Bin 60390 -> 59102 bytes .../SignUpView/Base.lproj/Main.storyboard | 2 +- SignUp/SignUp/View/SignUpTextField.swift | 44 ++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 SignUp/SignUp/View/SignUpTextField.swift diff --git a/SignUp/SignUp.xcodeproj/project.pbxproj b/SignUp/SignUp.xcodeproj/project.pbxproj index e987da9..def0022 100644 --- a/SignUp/SignUp.xcodeproj/project.pbxproj +++ b/SignUp/SignUp.xcodeproj/project.pbxproj @@ -21,6 +21,7 @@ B075D11126120A5900731DAC /* UILabel+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D11026120A5900731DAC /* UILabel+Extension.swift */; }; B075D1162612F4AD00731DAC /* UserInfomation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1152612F4AD00731DAC /* UserInfomation.swift */; }; B075D11A261300FB00731DAC /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D119261300FB00731DAC /* NetworkManager.swift */; }; + B075D12026158BED00731DAC /* SignUpTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D11F26158BED00731DAC /* SignUpTextField.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -40,6 +41,7 @@ B075D11026120A5900731DAC /* UILabel+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UILabel+Extension.swift"; sourceTree = ""; }; B075D1152612F4AD00731DAC /* UserInfomation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfomation.swift; sourceTree = ""; }; B075D119261300FB00731DAC /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; + B075D11F26158BED00731DAC /* SignUpTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignUpTextField.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -72,6 +74,7 @@ B075D0E826119A7D00731DAC /* SignUp */ = { isa = PBXGroup; children = ( + B075D11E26158BDA00731DAC /* View */, B075D1132612121800731DAC /* Extension */, B075D0FE26119C0200731DAC /* SignUpView */, B075D0E926119A7D00731DAC /* AppDelegate.swift */, @@ -107,6 +110,14 @@ path = Extension; sourceTree = ""; }; + B075D11E26158BDA00731DAC /* View */ = { + isa = PBXGroup; + children = ( + B075D11F26158BED00731DAC /* SignUpTextField.swift */, + ); + path = View; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -180,6 +191,7 @@ B075D10B261207A600731DAC /* ComplianceChecker.swift in Sources */, B075D0EE26119A7D00731DAC /* SignUpViewController.swift in Sources */, B075D0EA26119A7D00731DAC /* AppDelegate.swift in Sources */, + B075D12026158BED00731DAC /* SignUpTextField.swift in Sources */, B075D1072611D07800731DAC /* textFormError.swift in Sources */, B075D11A261300FB00731DAC /* NetworkManager.swift in Sources */, B075D1162612F4AD00731DAC /* UserInfomation.swift in Sources */, diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index 1f87e9ac9b6fead433bd76235b4d9391048af9cf..49046cc8205bbb69a706794c57149a8dbf3e2dd5 100644 GIT binary patch delta 26763 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 delta 28327 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 h% - + diff --git a/SignUp/SignUp/View/SignUpTextField.swift b/SignUp/SignUp/View/SignUpTextField.swift new file mode 100644 index 0000000..4b3a1ba --- /dev/null +++ b/SignUp/SignUp/View/SignUpTextField.swift @@ -0,0 +1,44 @@ +// +// SignUpTextField.swift +// SignUp +// +// Created by 이다훈 on 2021/04/01. +// +import Foundation +import UIKit + +enum TextFieldType { + case id + case pw + case pw2 + case name +} + +enum TextFormError { + case ok + case wrong(_ field: WrongType) + case none + + enum WrongType { + case idIneligible + case idUsed + case pwOutOfIndex + case pwNoUpperCase + case pwNoNumber + case pwNoSpecialCharacter + } +} + +class SignUpTextField: UITextField { + var relatedLabel : UILabel? + var textFieldType : TextFieldType? + var errorType : TextFormError = .none + + override init(frame: CGRect) { + super.init(frame: frame) + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + } +} From fed1c7b11000eb47807890543d86736a9f4bca8b Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Thu, 1 Apr 2021 14:44:56 +0900 Subject: [PATCH 03/15] =?UTF-8?q?InfromationLabel=20=EC=86=8D=EC=84=B1=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EB=A9=94=EC=86=8C=EB=93=9C=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기존 설정을 storyboard에서 하도록 수정 --- .../UserInterfaceState.xcuserstate | Bin 59102 -> 60076 bytes .../SignUpView/Base.lproj/Main.storyboard | 24 +++++++++--------- .../SignUpView/SignUpViewController.swift | 10 -------- SignUp/SignUp/View/SignUpTextField.swift | 2 ++ 4 files changed, 14 insertions(+), 22 deletions(-) diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index 49046cc8205bbb69a706794c57149a8dbf3e2dd5..3e522f8434c61fbf4a7d086b5ba16d33c8f18f1d 100644 GIT binary patch delta 26586 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 Cxxe`U delta 25777 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 K>;Lon8~+71O!q?o diff --git a/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard b/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard index 3ebb23d..a781e6d 100644 --- a/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard +++ b/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard @@ -70,31 +70,31 @@ -
  • FM#@J=pDebcC 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 = {_ in }) -> TextFormError { + + guard let text = textField.text else { + return .none + } + + switch textField.textFieldType { + case .id: + return checkIdTextForm(with: text, closure: closure) + case .pw: + return checkPwTextForm(with: text) + case .pw2: + return checkPwDuplicated(with: textField) + case .name: + return checkNameIsNil(with: text) + default: + return .none + } + } + private func regexChekcing(target : String, pattern : String) -> Bool { do { let regex = try NSRegularExpression(pattern: pattern) @@ -32,44 +52,71 @@ struct ComplianceChecker { return true } - func checkIdTextForm(with text : String, closure : @escaping (IdTextFormError)->Void ) { - var usedCheck : IdTextFormError = .none + private func checkIdTextForm(with text : String, closure: @escaping (TextFormError)->Void) -> TextFormError{ + var errorChecker : TextFormError = .none networkManager.getUserList(closure: { userList in if let userList = userList { if userList.contains(text) { - usedCheck = .used + errorChecker = .wrong(.idUsed) } else { - usedCheck = .ok + errorChecker = .ok } if !regexChekcing(target: text, pattern: "([^A-Z][0-9a-z-_]).{3,18}") { - usedCheck = .wrong + errorChecker = .wrong(.idIneligible) } - closure(usedCheck) + closure(errorChecker) } }) + return errorChecker } - func checkPwTextForm(with text : String) -> PwTextFormError { + private func checkPwTextForm(with text : String) -> TextFormError { if !regexChekcing(target: text, pattern :"([A-Za-z0-9!@#$%]).{7,15}") { - return .outOfIndex + return .wrong(.pwOutOfIndex) } if !regexChekcing(target: text, pattern :"^.*(?=.*[A-Z])[A-Za-z0-9!@#$%].*$") { - return .noUpperCase + return .wrong(.pwNoUpperCase) } if !regexChekcing(target: text, pattern :"^.*(?=.*[0-9])[A-Za-z0-9!@#$%].*$") { - return .noNumber + return .wrong(.pwNoNumber) } if !regexChekcing(target: text, pattern :"^.*(?=.*[!@#$%])[A-Za-z0-9!@#$%].*$") { - return .noSpecialCharacter + return .wrong(.pwNoSpecialCharacter) } return .ok } + + private func checkPwDuplicated(with textField : SignUpTextField) -> TextFormError { + + let optionalFieldArray = textField.superview?.subviews.filter({ + let item = $0 as? SignUpTextField + guard let textField = item else { + return false + } + return true + }) as? [SignUpTextField] + + guard let fieldArray = optionalFieldArray else { + return .none + } + + if fieldArray[1].text == fieldArray[2].text { + return .ok + } else { + return .wrong(.pwDifferent) + } + + } + + private func checkNameIsNil(with text: String) -> TextFormError { + return text == "" ? .wrong(.nameIsNil) : .ok + } } diff --git a/SignUp/SignUp/SignUpView/TextFieldDelegate.swift b/SignUp/SignUp/SignUpView/TextFieldDelegate.swift index ccc68ac..15bfccf 100644 --- a/SignUp/SignUp/SignUpView/TextFieldDelegate.swift +++ b/SignUp/SignUp/SignUpView/TextFieldDelegate.swift @@ -9,7 +9,15 @@ import UIKit class TextFieldDelegate: NSObject, UITextFieldDelegate { + let complianceChecker = ComplianceChecker() + func textFieldDidEndEditing(_ textField: SignUpTextField) { + complianceChecker.check(target: textField, closure: { errorChecker in + errorChecker + + }) + + // 반환된 값을 가지고 UI를 수정. } func textFieldShouldReturn(_ textField: UITextField) -> Bool { diff --git a/SignUp/SignUp/View/SignUpTextField.swift b/SignUp/SignUp/View/SignUpTextField.swift index 6a31abc..69c6ecd 100644 --- a/SignUp/SignUp/View/SignUpTextField.swift +++ b/SignUp/SignUp/View/SignUpTextField.swift @@ -26,6 +26,8 @@ enum TextFormError { case pwNoUpperCase case pwNoNumber case pwNoSpecialCharacter + case nameIsNil + case pwDifferent } } @@ -43,4 +45,19 @@ class SignUpTextField: UITextField { super.init(coder: coder) self.borderStyle = .line } + + func changeStyle(with type: TextFieldType?, with error : TextFormError) { + guard let type = type else { + return + } + + switch error { + case .ok: + <#code#> + case .wrong(<#T##field: TextFormError.WrongType##TextFormError.WrongType#>): + <#code#> + default: + <#code#> + } + } } From 9f47314030f3c2dc7a78675502650db3ff764b70 Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Thu, 1 Apr 2021 17:41:19 +0900 Subject: [PATCH 06/15] =?UTF-8?q?observer=20pattern=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit delegate 내에서 ComplianceChecker를 이용하여 textField 내용 검사 해당 결과를 통해 textField와 참조중인 UILabel의 UI를 변경 --- .../UserInterfaceState.xcuserstate | Bin 64294 -> 64110 bytes .../SignUp/Extension/UILabel+Extension.swift | 33 ++++- .../SignUpView/Base.lproj/Main.storyboard | 6 +- .../SignUpView/SignUpViewController.swift | 136 ------------------ .../SignUp/SignUpView/TextFieldDelegate.swift | 15 +- SignUp/SignUp/View/SignUpTextField.swift | 30 ++-- 6 files changed, 63 insertions(+), 157 deletions(-) diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index 8c75057d62af9d499dace6c1acca6f6a32971181..1d1ad4433db48018aedaf99e58fd2dcbb823b28c 100644 GIT binary patch delta 30709 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 F{U2GbB^Uqz delta 31496 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 - + @@ -52,7 +52,7 @@ - + @@ -64,7 +64,7 @@ - + diff --git a/SignUp/SignUp/SignUpView/SignUpViewController.swift b/SignUp/SignUp/SignUpView/SignUpViewController.swift index 7108c18..1f9e817 100644 --- a/SignUp/SignUp/SignUpView/SignUpViewController.swift +++ b/SignUp/SignUp/SignUpView/SignUpViewController.swift @@ -14,12 +14,9 @@ class SignUpViewController: UIViewController { @IBOutlet var informationLabelCollection: [UILabel]! private let textFieldDelegate = TextFieldDelegate() - private let complianceChecker = ComplianceChecker() - override func viewDidLoad() { super.viewDidLoad() configureTextField() - configureObserver() } private func configureTextField() { @@ -29,139 +26,6 @@ class SignUpViewController: UIViewController { textFieldCollection[index].relatedLabel = informationLabelCollection[index] } } - - private func configureObserver() { - NotificationCenter.default.addObserver(self, selector: #selector(idTextFieldEdited(_:)), name: .idTextField, object: nil) - NotificationCenter.default.addObserver(self, selector: #selector(pwTextFieldEdited(_:)), name: .pwTextField, object: nil) - NotificationCenter.default.addObserver(self, selector: #selector(pw2TextFieldEdited(_:)), name: .pw2TextField, object: nil) - NotificationCenter.default.addObserver(self, selector: #selector(nameTextFieldEdited(_:)), name: .nameTextField, object: nil) - } - - @objc private func idTextFieldEdited(_ notification : Notification) { - let textField = notification.object as! UITextField - guard let text = textField.text else { - return - } - - guard let label = informationLabelCollection.first(where: { label in - label.accessibilityIdentifier ?? "" == "IDInformation" - }) else { - return - } - - complianceChecker.checkIdTextForm(with: text, closure : { usedCheck in - DispatchQueue.main.async { - label.isHidden = false - switch usedCheck { - case .ok: - textField.changeBorder(color: UIColor.green.cgColor) - label.changeStyle(color: UIColor.green, text: "사용 가능한 아이디입니다.") - case .used: - textField.changeBorder(color: UIColor.red.cgColor) - label.changeStyle(color: UIColor.red, text: "이미 사용중인 아이디입니다.") - case .wrong: - textField.changeBorder(color: UIColor.red.cgColor) - label.changeStyle(color: UIColor.red, text: "5~20자의 영문 소문자, 숫자와 특수기호(_,-)만 사용 가능합니다.") - case .none: - return - } - } - }) - } - - @objc private func pwTextFieldEdited(_ notification : Notification) { - let textField = notification.object as! UITextField - guard let text = textField.text else { - return - } - - guard let label = informationLabelCollection.first(where: { label in - label.accessibilityIdentifier ?? "" == "PWInformation" - }) else { - return - } - - label.isHidden = false - - switch complianceChecker.checkPwTextForm(with: text) { - case .ok: - textField.changeBorder(color: UIColor.green.cgColor) - label.changeStyle(color: UIColor.green, text: "안전한 비밀번호입니다.") - - case .outOfIndex: - textField.changeBorder(color: UIColor.red.cgColor) - label.changeStyle(color: UIColor.red, text: "8자 이상 16자 이하로 입력해주세요.") - - case .noUpperCase: - textField.changeBorder(color: UIColor.red.cgColor) - label.changeStyle(color: UIColor.red, text: "영문 대문자를 최소 1자 이상 포함해주세요.") - - case .noNumber: - textField.changeBorder(color: UIColor.red.cgColor) - label.changeStyle(color: UIColor.red, text: "숫자를 최소 1자 이상 포함해주세요.") - - case .noSpecialCharacter: - textField.changeBorder(color: UIColor.red.cgColor) - label.changeStyle(color: UIColor.red, text: "특수문자를 최소 1자 이상 포함해주세요.") - } - - } - - @objc private func pw2TextFieldEdited(_ notification : Notification) { - let textField = notification.object as! UITextField - guard let text = textField.text else { - return - } - - guard let pwTextField = textFieldCollection.first(where: {textField in - textField.accessibilityIdentifier ?? "" == "PWTextField" - }) else { - return - } - - guard let label = informationLabelCollection.first(where: { label in - label.accessibilityIdentifier ?? "" == "PW2Information" - }) else { - return - } - - let pwCoincidenceCheck : CoincidenceError = text == pwTextField.text ? .ok : .wrong - - label.isHidden = false - - switch pwCoincidenceCheck { - case .ok: - textField.changeBorder(color: UIColor.green.cgColor) - label.changeStyle(color: UIColor.green, text: "비밀번호가 일치합니다.") - case .wrong: - textField.changeBorder(color: UIColor.red.cgColor) - label.changeStyle(color: UIColor.red, text: "비밀번호가 일치하지 않습니다..") - } - } - - @objc private func nameTextFieldEdited(_ notification : Notification) { - let textField = notification.object as! UITextField - guard let text = textField.text else { - return - } - let nameTextNilCheck : CoincidenceError = text == "" ? .wrong : .ok - - guard let label = informationLabelCollection.first(where: { label in - label.accessibilityIdentifier ?? "" == "NameInformation" - }) else { - return - } - - switch nameTextNilCheck { - case .ok: - label.isHidden = true - textField.changeBorder(color: UIColor.black.cgColor) - case .wrong: - label.isHidden = false - textField.changeBorder(color: UIColor.red.cgColor) - label.changeStyle(color: UIColor.red, text: "이름은 필수 입력 항목입니다.") - } - } @IBAction func nextButtonTouched(_ sender: Any) { //nextView diff --git a/SignUp/SignUp/SignUpView/TextFieldDelegate.swift b/SignUp/SignUp/SignUpView/TextFieldDelegate.swift index 15bfccf..eccf59e 100644 --- a/SignUp/SignUp/SignUpView/TextFieldDelegate.swift +++ b/SignUp/SignUp/SignUpView/TextFieldDelegate.swift @@ -11,18 +11,21 @@ class TextFieldDelegate: NSObject, UITextFieldDelegate { let complianceChecker = ComplianceChecker() - func textFieldDidEndEditing(_ textField: SignUpTextField) { - complianceChecker.check(target: textField, closure: { errorChecker in - errorChecker - + func textFieldDidEndEditing(_ textField: UITextField) { + guard let textField = textField as? SignUpTextField else { + return + } + + let checkResult = complianceChecker.check(target: textField, closure: { errorChecker in + textField.changeStyle(with: errorChecker) }) - // 반환된 값을 가지고 UI를 수정. + textField.changeStyle(with: checkResult) } func textFieldShouldReturn(_ textField: UITextField) -> Bool { let optionalFieldArray = textField.superview?.subviews.filter({ - let item = $0 as? UITextField + let item = $0 as? SignUpTextField guard let textField = item else { return false } diff --git a/SignUp/SignUp/View/SignUpTextField.swift b/SignUp/SignUp/View/SignUpTextField.swift index 69c6ecd..aae419c 100644 --- a/SignUp/SignUp/View/SignUpTextField.swift +++ b/SignUp/SignUp/View/SignUpTextField.swift @@ -46,18 +46,30 @@ class SignUpTextField: UITextField { self.borderStyle = .line } - func changeStyle(with type: TextFieldType?, with error : TextFormError) { - guard let type = type else { + func changeStyle(with error : TextFormError ) { + guard let type = self.textFieldType else { return } - switch error { - case .ok: - <#code#> - case .wrong(<#T##field: TextFormError.WrongType##TextFormError.WrongType#>): - <#code#> - default: - <#code#> + guard let label = relatedLabel else { + return + } + + DispatchQueue.main.async { + label.showMessage(type: type, error: error) + switch error { + case .ok: + self.changeBorder(color: UIColor.green.cgColor) + label.isHidden = false + label.textColor = UIColor.green + case .wrong: + self.changeBorder(color: UIColor.red.cgColor) + label.isHidden = false + label.textColor = UIColor.red + default: + return + } } } + } From f63b5654395b2fe8a2539949aa8cf1573e069113 Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Thu, 1 Apr 2021 17:42:18 +0900 Subject: [PATCH 07/15] =?UTF-8?q?Observer=20Pattern=20=EC=9E=94=EC=97=AC?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SignUp/SignUp.xcodeproj/project.pbxproj | 4 ---- .../UserInterfaceState.xcuserstate | Bin 64110 -> 63655 bytes .../Extension/Notification+Extension.swift | 15 --------------- 3 files changed, 19 deletions(-) delete mode 100644 SignUp/SignUp/Extension/Notification+Extension.swift diff --git a/SignUp/SignUp.xcodeproj/project.pbxproj b/SignUp/SignUp.xcodeproj/project.pbxproj index def0022..4f86fbe 100644 --- a/SignUp/SignUp.xcodeproj/project.pbxproj +++ b/SignUp/SignUp.xcodeproj/project.pbxproj @@ -14,7 +14,6 @@ B075D0F326119A7F00731DAC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B075D0F226119A7F00731DAC /* Assets.xcassets */; }; B075D0F626119A7F00731DAC /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B075D0F426119A7F00731DAC /* LaunchScreen.storyboard */; }; B075D1012611BBC700731DAC /* TextFieldDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1002611BBC700731DAC /* TextFieldDelegate.swift */; }; - B075D1042611BEB600731DAC /* Notification+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1032611BEB600731DAC /* Notification+Extension.swift */; }; B075D1072611D07800731DAC /* textFormError.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1062611D07800731DAC /* textFormError.swift */; }; B075D10B261207A600731DAC /* ComplianceChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D10A261207A600731DAC /* ComplianceChecker.swift */; }; B075D10E261209C300731DAC /* UITextField+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D10D261209C300731DAC /* UITextField+Extension.swift */; }; @@ -34,7 +33,6 @@ B075D0F526119A7F00731DAC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; B075D0F726119A7F00731DAC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B075D1002611BBC700731DAC /* TextFieldDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldDelegate.swift; sourceTree = ""; }; - B075D1032611BEB600731DAC /* Notification+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification+Extension.swift"; sourceTree = ""; }; B075D1062611D07800731DAC /* textFormError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = textFormError.swift; sourceTree = ""; }; B075D10A261207A600731DAC /* ComplianceChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComplianceChecker.swift; sourceTree = ""; }; B075D10D261209C300731DAC /* UITextField+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextField+Extension.swift"; sourceTree = ""; }; @@ -103,7 +101,6 @@ B075D1132612121800731DAC /* Extension */ = { isa = PBXGroup; children = ( - B075D1032611BEB600731DAC /* Notification+Extension.swift */, B075D10D261209C300731DAC /* UITextField+Extension.swift */, B075D11026120A5900731DAC /* UILabel+Extension.swift */, ); @@ -197,7 +194,6 @@ B075D1162612F4AD00731DAC /* UserInfomation.swift in Sources */, B075D1012611BBC700731DAC /* TextFieldDelegate.swift in Sources */, B075D10E261209C300731DAC /* UITextField+Extension.swift in Sources */, - B075D1042611BEB600731DAC /* Notification+Extension.swift in Sources */, B075D0EC26119A7D00731DAC /* SceneDelegate.swift in Sources */, B075D11126120A5900731DAC /* UILabel+Extension.swift in Sources */, ); diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index 1d1ad4433db48018aedaf99e58fd2dcbb823b28c..2ffd30dc79ac84dddb9b8385fbea8eb952b11414 100644 GIT binary patch delta 14289 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 z Date: Thu, 1 Apr 2021 17:45:32 +0900 Subject: [PATCH 08/15] =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SignUp/SignUp.xcodeproj/project.pbxproj | 4 --- .../UserInterfaceState.xcuserstate | Bin 63655 -> 63243 bytes SignUp/SignUp/SignUpView/textFormError.swift | 28 ------------------ 3 files changed, 32 deletions(-) delete mode 100644 SignUp/SignUp/SignUpView/textFormError.swift diff --git a/SignUp/SignUp.xcodeproj/project.pbxproj b/SignUp/SignUp.xcodeproj/project.pbxproj index 4f86fbe..46426d6 100644 --- a/SignUp/SignUp.xcodeproj/project.pbxproj +++ b/SignUp/SignUp.xcodeproj/project.pbxproj @@ -14,7 +14,6 @@ B075D0F326119A7F00731DAC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B075D0F226119A7F00731DAC /* Assets.xcassets */; }; B075D0F626119A7F00731DAC /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B075D0F426119A7F00731DAC /* LaunchScreen.storyboard */; }; B075D1012611BBC700731DAC /* TextFieldDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1002611BBC700731DAC /* TextFieldDelegate.swift */; }; - B075D1072611D07800731DAC /* textFormError.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1062611D07800731DAC /* textFormError.swift */; }; B075D10B261207A600731DAC /* ComplianceChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D10A261207A600731DAC /* ComplianceChecker.swift */; }; B075D10E261209C300731DAC /* UITextField+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D10D261209C300731DAC /* UITextField+Extension.swift */; }; B075D11126120A5900731DAC /* UILabel+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D11026120A5900731DAC /* UILabel+Extension.swift */; }; @@ -33,7 +32,6 @@ B075D0F526119A7F00731DAC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; B075D0F726119A7F00731DAC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B075D1002611BBC700731DAC /* TextFieldDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldDelegate.swift; sourceTree = ""; }; - B075D1062611D07800731DAC /* textFormError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = textFormError.swift; sourceTree = ""; }; B075D10A261207A600731DAC /* ComplianceChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComplianceChecker.swift; sourceTree = ""; }; B075D10D261209C300731DAC /* UITextField+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextField+Extension.swift"; sourceTree = ""; }; B075D11026120A5900731DAC /* UILabel+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UILabel+Extension.swift"; sourceTree = ""; }; @@ -90,7 +88,6 @@ B075D0ED26119A7D00731DAC /* SignUpViewController.swift */, B075D0EF26119A7D00731DAC /* Main.storyboard */, B075D1002611BBC700731DAC /* TextFieldDelegate.swift */, - B075D1062611D07800731DAC /* textFormError.swift */, B075D10A261207A600731DAC /* ComplianceChecker.swift */, B075D119261300FB00731DAC /* NetworkManager.swift */, B075D1152612F4AD00731DAC /* UserInfomation.swift */, @@ -189,7 +186,6 @@ B075D0EE26119A7D00731DAC /* SignUpViewController.swift in Sources */, B075D0EA26119A7D00731DAC /* AppDelegate.swift in Sources */, B075D12026158BED00731DAC /* SignUpTextField.swift in Sources */, - B075D1072611D07800731DAC /* textFormError.swift in Sources */, B075D11A261300FB00731DAC /* NetworkManager.swift in Sources */, B075D1162612F4AD00731DAC /* UserInfomation.swift in Sources */, B075D1012611BBC700731DAC /* TextFieldDelegate.swift in Sources */, diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index 2ffd30dc79ac84dddb9b8385fbea8eb952b11414..fd76eccea8aa97a538f8af67f46cf9d2931904e3 100644 GIT binary patch delta 18623 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%0D8#zV#zjjtKsFurB{yYWNg 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 Date: Thu, 1 Apr 2021 18:08:04 +0900 Subject: [PATCH 09/15] =?UTF-8?q?=EC=A0=95=EA=B7=9C=20=ED=91=9C=ED=98=84?= =?UTF-8?q?=EC=8B=9D=20=EB=A9=94=EC=86=8C=EB=93=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 정규표현식 비교 결과를 반환하는 method 반환된 결과를 본래 string과 비교하는 method --- .../UserInterfaceState.xcuserstate | Bin 63243 -> 62565 bytes .../SignUp/SignUpView/ComplianceChecker.swift | 36 +++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index fd76eccea8aa97a538f8af67f46cf9d2931904e3..e6aaade70a139c9c9ab41ee40dedd93a775b3288 100644 GIT binary patch delta 24372 zcmbsQ1$Y!^)IJXH&dl!Y*zPQGAxd1a5E4R!kPsz8gb-ng5DyYuHV-W^5+Va3hGdE3 z&;rG2DelF+6qn*sr2L=RO)78sz2AFXU+GMCcV?bB_kHej&LcC6en;;xomdyvjjh2pU|X?m*mmp(Y%jJCJB%H{&R}P;2iQaG5%w5+ zf<484$DU!&u@~4I>=X7G`%{F8L?T8c70E<;B7Kpw$VKET>Mt4~8Ymhh8Z2@X4H0>Y z{6r%}L84$$lqgy>MwBQ@(icq?6^f>bri*5XW{PHsW{c*C=8B3$CEQ7LtjI`gEbhlS zVqwY_afi55yivSKyji?Myi_=5PN_>%at_=@<3_^$Y#_`dk5_;>MJ z@jLN*@gL$3ID(_N0d9yJ;l_Ah+ypnp&2V$v0=LGUaA$lFJ{b4HhvVLOAU+CD##8X| zxB{Pmr{ZaNI-Y?~#B=Z|_)H}}3kUcD{2P1`UV*Fd)p#r3hPUG#cqiV4cjIgD4fs}k z7rq<+89#_0!cXC+@q74v`~m(De}q5ApWsjN-|=VoEBpig5&tAXB&dXv&=PHlj>JLY zC~=ZFOI#$blKzqbl7W&z5_gHW#77b!36zYML`Whf%CV9J$t1~S$rQ;{Nugw#WV&RA zWTs@6WS-<($wJ8@NrhyIWT~W1vP`m4vP!a5vQ4sG@`GfDWT#}8WVd9GWUu5W$x+EM z$r;I6$rZ^}$u-G!$z91k$tTHY$)A!hgn$qd2!Rq9AtDHZCFF!2p--3*=7a@dPdF$E zU&4SMoObfP6?kC4Z*`l#oIw zl)@+xC8ltSq$rA}3@IbZnCeSeQZ|$=f+*UFrq(l6pnGrruC*sdqF=leCnU(JZY^_oJ<7Yubjk zrS0g!v>QEycBhBZUi5I>Ctoq9Z5&gv2+}rL?_b|=u|qBp01>4&@<^-w37aY z{+2GMtLYkg8QnxT(<*v3y^dZ_Z=g5Qo9NB-7WzB-dwM6mi#|aAOdq6g)4$Po=)3ei z`ab=Den>x}AJb3hr}XdiYx)iSfx#FNBW7?$!VruWqs{0rx{MxU#F#RcOh3k%abet< z;f&Io8NmcHqnJ=8j0tC=m}n-B8OJ0t6POGpo0-ncU}iG2nAyy?%tEG^DPiiEc4jTJ zh1tezXLd3Bm;=nu%n{}UbCNm5oMz53*O}j#hs;yvcjhJYmU+i~l**-jq*_vKsg6`v zswdT#8b}SLCQ>V@gVa$vNGTmG^^y*kdP_%1!=+=S@zSx|A zm6l2?q?OVdX@|5^+9mClu92>lu9L2pZjf%2eka{2-7o!7dQ^Ih+9N$KJtsXcy&=6L zeJp(@eJ*`1eJ}ka{VWs85E&(t%k*W&vc58NnT5<+W-oJ)DP3f)vY|3>S%55979txh zi;#_x#mmOZl4QxUiLyLdp=_pXmTaC3$QH_qW#zI(vL&)cS&OVq)-LOot(R?c{U*l0G9oxo`&|g_9%Ody~dp*%#~^_78bFBA3WzaxJ-@+(>RJHQfZ74n9-xi@b=q>6BKr-=0m336TndC;K)4qO z&jaB@Ap8>`eE?zy5HEm403;P4GXSy(AgciKJwT2CZ ze^MY!Ejj{(nMJ8Un6(A?xCyx%!<>a-9OD%r6^3AQiY5YKhDvx1o6og)>6**YYF6}% zfDuRqGVEKdM4+n@CSb)y`9PT6dzMLJCALi9+=VU1s<3LT2CKz5Yzej$s{_JZAj|_o zcy<90P6EQoKsW^mrvhPN7gjH{5LyVVux3mq^n^yP0>Wv%M$QJpsG60N1!e(V5*g8e8A0m6CQDQ_#?qu2=zxZ^xHB@b>$5y!po(B@p@abxTk>^hI} z9CjYNfL+8cVVAKh*j4Nr5CU$vkG^decB2Q-Z9$$I&^;h5?*+8D$WnucQ{x%+lE?E3 z2p9F@dCTK@hrQ=FAglnwO3fbPAz0mBG+#tQh(;s;!m1V#0)*8(8hw#iL_pg`IFF{L zXrf9)3ZY%KoR^=80V~o{;}Z4ZaV>$kL}U@i9|e~Bi6R4$C4?n16d8$(MSVpkB2$r> z$XsLrgwT7-fUq728-TD82%CVg83>mH;fgL%KMhimtp=&c5eQfIB31Pw?SM!J3j;;& z5UOY>5U%QhDjLQ^wG<8KH^7_RqS-^J!XBU^e^CGrbR-b2ZV?3nVJiVACPi!iKUN!k%0fN7jCm?r3UT_9`2sMujb)y86Vg!WZ#L7 zVsKLn>=@j0hC%O4KJl4C^aTiS_5%482%&`4sp7sG2$vS3=e!w?Uz6wn-eX4)!;2zxqX(kfM6i1;T0!?H{4%`cB-8!Hq|WkeWTD zm+3WCC2r+ST@4VrMcf7uMy)V$mv}8tUx;`OBp;Eg1e|z%kqba%{~@1k?QLp{c&nOn z@%NB&ME>_Ryx9igUE+gKVdCB5J>tFMed7J%AH_e34~T!}Od|E20Akc7KBSS8_?Y;( z_=M0xdY^5s&yGK+Idjj{#!ABTf)M6Tj3Te!(NQgn|*jhNL6?{)1R929`d?8t1SB zdz<|z{!@egGmqZ(@9TN=NjQc}A$nYdi*X#6-~>+M6i(v|KxHh*UhA{BK zN2t-_emvS?(AT&JuMZCm+8{idM;nZX;GuXJ9*&R3Bk)K(3LwJ);tdcVfcOH$4A$Mm3$??IagkicHFL4TnQSEJR!GkLUG02$SbHkX?h*H=CjpT^@U1W0fT zJ{=$-8a%V{c|4vuJf2V<&wL(Fm>SRLIKtptTvO9=zNRCic|7xZJYhVZM7$E`D?7dz zufnVG8oU0)R}? z?4c4VR=Zb=pYbm|SlFwZ(jpN6WGVz}V}MC;HCBn3$65%{z{2IyQ@9KzjD%H#mB@Io z)Bk-qQKBm`gJ30k5`Bq*#86@+F_!d|m`Gq|m z?~8cpCQHUi(s=?BB}tNGNs45=L?M|VNtHlXL(3`wvKSy$0I3E@4M1uE0;6I{mn5Ty zfNV()wn=CqfekP1C7>Q4u=_KE&%`TwD45Mt0BNl2rC>gviJK)w{Kl6ZWSM3UDRAnw zyI4}nQ&0ksh89T~KpJ@p;wmN88Vag-3YuUVmDKWSxcR>nh=*JHxM|XGZ=3a!CJh&j zJQpkfzFNaYi)0PYg-Wto(kf|_v`ac9osup|H$Ykdq5=r4f~^2)14uhSIsnoMkghJt z+8!=8N;ZiWKrX%mNOvz6Fkm;sE(_1amL4wl@m%Z&$eLa*4yd&+If%cJ98{}*t!59o z(C@YTxa1_y#R-6{Z;_k=$Og6Yf010!aB-gJVk7U_OS~L5ao1D(n)hCNL-MNz^DQ3p zcmFtxFFca_k{3MY2a<=9N0P^qCz7X<-zCo^&jGR(Alm=}Q_BwkfvIIDKz0FSH$e7u zNnZ9~eyd5vk`Dmc+l%?fzf$ob4P-(LArm-2_Vqv}NIn8K5j4N?T@+-$W)C6j^q5Wb zA+#Z6LJJ^2wGcW0IRGJB8xjVDu^KaB#AE&$dXO;T{eO@P&oDBuB&^j~2`e7!;eQi zxbgS(YPl0riFrI7g~T*sIx&NoNz5W<6LScd>}~-B+IkxxzX1eh^1A@J2ax*!dC*17 z@1bJ>@eSXnCyD{`u$PV}0C@p(8BfQ{9y)4yI-tpqdg-X+egB@Q=Qn=%hCJ5nAsu?X zcCR2-@pP;N$kP@AhTiWy9q~jP(W#-MgQw#e52u@_H*#8KiH zcOplB5I_Y06?PLRh?4>Ky3l4$EorPLf;A6+lcqXAH)aZBk>8K zQh;g$R3D(m05vP>?OzgKNE9|m3P>RdZ!7~S3sCuL(I-+wiun-=+6SOoTvC3Mm6YuB zl`}~#Qk%cE4nTGJTlXz6vN9q~zjme>X---I)BvD{05#&03i`U)l8#?F6Io6=lP+*3 z1?>w^lOmf`fteK|Fgr^Q6v)UyG@Kks28f39 zV`n%#YXKdy>-BM(e!de9RkMvC~%$lCXktI6ZhhnAkXlPUf85tKI?Od3Zmu~6% z6M55mYj!n2tu+=#lVdc-q^rniuA`){GG5T$BIr|u{^bTTkxUjitAA@DQvm8vWTT#l zAt(HGrsjKwpnX-*K+WeYL31}c7tKbeqO;I>Xg->U=At?193b=rLO4i-opabT_X0vw zAnXf-MnDM1j6>mYGE6h$L{2B?3!FR18RSfI7CD=oL(V1V0n`Pct^n;1&;bA)2v8{2 z!5yTMED~Cf3&Eauxihf>UUy4?xcX^cR3$2j~re z-r|4zjeB3VLAjp%LEzj?ZXh?3o5;=N7VJ0HA>Y z9R<)JfChJyJII~nE^;@yhullH}z8c9E=S2gBZl}o$0_QgJ40)FPg*-=|2WTij!vGo%(9r;m zXybDor0WWKRh{BsC`STx47aSJ-1Rr|F3cC?9e_r)kTATWi?UN#8N5fVB6nK)RNtv% zrlhC$iuMutn2W5m@_$CY;~n*!d_le>Uy-lLH{@G@#sV}Bpz#153(y3Bjss|7hrkNb z_yKO81f0+UrV&V962D94c2vF+O1Sll`ww9#EoeR^rDPOKo+r-%Q~}Tl0EKo&Km=`+ zHg7(qN9hAJjYj~`41iALbgQPCm{4%Cp~rp-Mo)TCc8|4GKgtSP+fPZ^Q4W8f1Ls;Z z|31fsauqnQT2*Azd(l8@n83M{8bl4I+^8XxJ2jN@prA~$0h$BQT!7{QG#{V^0G$NT z$(`h8YB+TNF7kWI4+;S~9{PKV+V{|r(B)Hsh}S~!meJKELi0!phSgf~JQYoip<<|5 zDvpY$#!?B?I4Y4!f^fOdHAdb5oexmuS}KJaPbnw`gr3IFor;FTPw+cHivS7$S_1#) zxhR8_NMTCgKl8tBiLA8{Drdn+rDg+kK~H#6^Y|ZN!{7WBP1Gi#kI0YOOl=XwQ(LI-xrQY*;u;nf zg<8&aX&$NG&>0owTgGW?f+7=9iaexAArP)JEF8(builNY$^ zA)eeucZxghYUuKH?63(U6SGwt{jVmts%3uio7Ar`T~oIJy1a$D4bT094f~^rW6rzf;eOV3@52Xe&V5IJf%Qdhe+}s1MXf>Jy~> zGxev?R}fDNX@ome?`F~k&~{0Y0HB=!?LH@v(HJeF#WXI67y6K&IHLwzSqFbOS*;S9 zqG_(6K_6Ao442p7h05tZ+`0x!p%!f zr~`jvyU>C*5qb)&Xmin4UfrAEtUAmcKX5}EmpR+hE)X5@)MuC!&G_!we*s|FMx4>=I;yYX;^&utZL~q$w%FN?d54Xy^?Qg z1whZW&`^x$xo(xCO{<{2gKneS=?=P+?xMSCSoJOd6b8v9fL;dZ6@Xp^=(R1MRZ1bX zmEO)bu??U%xsp~Vb~n9G;H;we(9li40`xX_pfyZ+h&~4sEq$0iLLa4%(Z}f%^hx>@ zeVRT)pQT|fhxP6*Kw-VR56}kyeF#t(ACCe01fWj=`a3|Mt)CX&c1~P+~!HgTgL;#Zjj06}1Fd4vD*w8UyCQ+mw_VuJY-DS*-NOwN9bp^`;=502(-1sE)`ylDy1SrhYP zCdFo@&*(WpaFf4HQK0%Ry%)u6ZY@{;7^}JFtC<~r$0Rc;LLZ?IwV8+!#KUbS5Dx3Z z%2}9?YKsIKkf}@>H>KN2n9i;09_Tj_)^a8jU^;)Phsj|k!A!>FGI>lsQvfhsfaw8D zA7BQp%w%Q?GnEMjm?41ch$1rxlhaufVl{_R!b-=?W#%#S0cHd+V}SKt%@i@g*gJrk z@NB^KqJ?YxQcDHRYnd{poLR(FFqO<=ri!U%YM5GvW0nBS6kyH(gY8EHY!blc0IURH z9KcoptP^0H0d~5`^%Ap;sb?CPM(F(}rkPpJtYB6O;+Ymk#jHm2nKsUT?M9^~!0cfS z!Jvsw0CVKW3Yfz`McBb~@*;#o3d|N@<{AYSO;C45n00Va&a7uPFdLao0J8vCKY&>Q z%=&NLtq|n$zO*cY2caUg!_y0A6imqpQ{*cqrcZHJPMwjJQP}Ile>?tv^Y(s?w{8CE z?O)&`olI~R-NYOcz!fZr$gbC!N10U@mID;qn7?z(4p_+A=qoo4tg?h<5!q;dcbhtC_pZJ?1{Z`U7krz~HJ( zFMa1VaWkMdq~*SoCi$o5rcZ=X?fg%ozZyWVcuJK38~im+cWO9=?uDH8)E4HGR1AlF z%xC6L=8IGy6-p5)D#fHQ3AqDoD8M`b230c*U{C&nN(^mwS|RJY6CF;7O5S; zMyjU(rA|^;^)!&w1x^ED0dPVSE`P!afA#XGQtBqWR+ffx>JK#hnPSF>0i+v_SX&3+W{32&B>=?v*i z=`87NfW-p1435PEZ0uif;Vu7JHhOjce@+|HG7a2>|4LkW7S;uI-hg`jTjSDNX*1Ng zl#?!zE|u0vmr3iT4bnzw6Tp%HmJF~IfQ<*30$`B8RDh)cEWJy*yhr0LQk8VI&_W8i z$>`NMEF!r8gKJy>%jYK<45JICO-W7PQsHAS94Xzzs~zU=iM?w79&+;aS>T>1l7)IxIZo*b>1mDj zPx0C>fZB%>#&AX8zZ1s)k%9DrTJM(`mGml_&C8&$NAHu>DuB-#!Ls--6^y841Qvo&&VABCM<1ZCRFKE12sP-ac5RT%Els)~N|GO6c z(6lo1zgjqpF4sr_7IP?t6t+)lrXqi0dUWBe+;rO+S%sM%cK?$H<#HLy6Co2bDwzbG z$`b*Tsk*k#RTELnPssg?2pKJ7dU;p~uzCODLDmQIAk&g*%XDP0YcU^SMF3j>uy6k2 zL56A&D0u`zoIASBP^s>Q$>11{FS+9x~5f zI%)t`_HR0TcshJ#ezFlVe}I((tO8(*0ao=l9sNbaDIWGB0Hm#>z_#E3m#nR>ozejY*$b7?72ooAwn|q^N0_ z0BJ}==kYWw>!AU5<6w^qE_p)B{uv&!Oj%Yh4b1>s`fnQYc^V32lVp=+FmCDqRu8ZS zfWeuN9x$>LO)p>>-wQw>4Vk-)H8e2)=h%=f(136H8u(8d@UWn(C83+j_v|BPs5vN@ zlJ~XvQ1abRS%sR3Ds`fm#WSJmVPa)(q8R)?m{=;S>t&(?V5|PkL=(?MvuwF+g$y2O1{a)J*(O*Dq&QtMTrH zp5Kk;@pv6!N>C?+E;V5ItXtpz0eHXc$6ml20oMI*z=wFihh;}(M`gzVwgzBp0eof? zTmKheX0=2e_m2Fd0T}+Z@~Hgl=dbkvWmhz4H+&84S`Av09>2?iG_r>-AIax{|KOM1 zVOGlS$?ik^4`q)8J^{v7~5<)9w!_6#;; zuV6<=_FDEv_7-5@18h6Me)tQz?2haMAL8&9+aPo}JmuJZ#@=i%3136|@82|o2NqYO z#CEDta;B~m@>sk`P-FnGojnB?K0;^+y998!*oW0(wOJijm(^qSS$N7GfWZR14`BNN z_9MW40@wk7{S2^!U96F&OTe09>c??eOMo5f?Gha6UHQgNs5`w{tPAW0u(0cYxThPy z4&>&081znlu^#L&Sn^reyE@v!Le$6jlFzcftiQU0%Z}hXxW~Ci9!C7bwJaOVhN;Ut z8_JjWll%c?;-nb^{-1ekIXi}pVPn}iM#YXnrm^E-2m$yoE_NMYXL#RTn;#Z~-*m)WQ zu6!i|kOjOpilCG2xNAQRaW7%vEL|I0%9gR^>>?J{qZN91MC?m z|2f35gO@@lz#c%7G|P7E8g@N&C$a`vTXekWgo@q3!esFfV2`-cpRLjF*dMq}KkMl1 zV0W^+*xdko46r8vdkV1Mi?X@Tj^$kXK{@p^3+LQh*nkb{J-$nBEw_=|%I)O#atFDi+)3^XL{cD< z0TByCav{27f(TBI>IdLd*T3gybWE zNWUkW$VWjY{?|c;e6&0gW*B({5E-_}qkzarJ%pCW%Hi`S@cBS_Jj^g6O3P?z&s-|`TOvHhS2J17I~&Ti+g?yu2{&kx!;csa>*L^1%f=mBtfnqOP~3 z2%qH0g3nwOje*ZiOhMs-ELw)vp$%$x z2oRy>uV75i-=07GTAZmsB2XF#ECh~%{sIqyw;)mwD@cToqMRi!k$2%sgzw2O@by74 zC7~F&#NLO}rW~j!xVk(Az79AYz6v-Sz6>}Yz7Dv6`W7zMHoyhi74SX4R;mN8z^;R< zuAAY?=RN8be9zAdzQLDE&!-#cMz~h<9SzrF=pFE7ygf>KA6#NN1(#QTq0hrrlPmN! z#*p!6<}*8)H}EyL0q_mCAyN+m8MHq!8h5ylkSGo1Baz&;2Ud? zrBC4-YcHg)q;I6}WSC4WlgLOoFqO(!Ss(a%+DzG6*&W#B@qmxIk7UEyS$+2R`MJ-@ zKFT|N9`|{#CDM{;ky?zFOiQk1qGhIKq18_-OKZB;JT0Xb(E3KJT&qHBu~xNKt=1N; zb6W4T1=>PwRGZe;);7?#(6-XH(YDhbpgmA~u=a56FzqqgN!r=kleK4PFV=3-UZK58 zd$o3(c8B(N+FP}^YwythQ-{*g*3s3`*D+M;80%Q+*yz~lIOsU(xag$lEY{hrb5B>G ztD|e8Yp!dlYo+U^>!Ta28><_yo1mMho2)xgw@`PM?i}5Dx(jr_)h*U7)veO4(_N#x zS$C)IRo&Zqh@QTlm7cYpjh>yJo1U-U2)&VdfqFrDA$qZT@p=h*iF(O;JruRl4(Z}?~`V##z{W|@6{YL#}17ia_0|x^q0~dph2D=UR8tgat$4s&7iwr9bs|;%lIm4xf%M2R~n+%s5?l8P;_}R$RXoOLg zQKivZqhm(rj4m2oHo9tb$LOiiGou$quZ-R(joumkVf4}HlQCgT8%vGl##+WY#siGK zjs1-Sj7J%V8ILxOG>$e-G0r!hY&_doXS>C;|Io%jGq|)Zv5Q%WnWQWyf4w0>dW+%^_BP4>Z{XNudhL0x4tobXZ3CB zySK0Mt_fjcYZ7P@VG?Z;V-jaF-XzN;$0X0Bz+|$?RFfi;Z%h`Nl$w;ARG4&`Y&F?w zvfE^@$pMptCWlRqnp`%yX7bSFca!HPFHPQ={9*FZTK$2I>2<0shg?0 zsfXz>)8VF(rqQM`rg5fYO~;ugnWmU3OjAwMO&2IlTTFj8y>CXD^*4(#D>UQGn$1?4 zwV16oTWj{c**3Eu%yydXHrs1<-0YOu8MAX{7tAi1y)j43adX0)GH1>Em}{Hsnp>GW zo4c6zHy>_3!hEE8pn0fyxOs$ml)1t@-yE2KW4_S5#JtRWk$I(gm3fUhXWnk!Y2IzV z)_lFWa-;cX^Y6^Jnr}DXVSds4t%ae*FpKdP#TMNbM=Ty#ys&s}@z&zKrO=YJq%EbE ztYsfdZA){@ewNmjc9ss7PL{!zah8de$(G|S(=8`jW?AM~&bBPEtgu{cS#7!0a+zg= zWs_yM#a6gZMOQ(>L;tyR_CoQT3xofVRg&uw$&Z0SJnb+ku`2jSWB&0 z>ps@n*5=kqOKU4@8|!baYpglzrPj-=-`QX`G8?&#mW_^$o{fP`KO1WsTN`^DM;m7w zSDUdm(`?FYHrO1tId5~#=7!BJo7*-IZ64b^wRvXq!d76bWjn~$%QnC^$Tq|_%r?O` z#a3aPYMW`BZJTSGZ(C@)z;=c08r$z|x7u#E-C?`S_GhK-A=@Li$81m7p0Yh}d(HN~ z?JGOP&e1O3Zk}DS-733vb{p+B+kJ1h&F%-g^L97v9^1XQ`(XFU?oWGxJz|g9%k8!7 zb?o)*4eX8V``Vk@+uOU@N7&D>ud#2n-(bJpey9Cz`@Qx@?JwG2vcGJ9)&7qC3;R#@ ze>w;p5C_ab?4Xo8XgTOQ=sOrWm^hd@1UaNT%yL-iu-)NjhvN<>9Zox(b-3(s)#19s zO^06{o;%7N`#Cx}x;YMY^mO!c40ast80i@881I9k)6D;JC|iuj78lLyjjMFFW3KeC=f76zo*sG}CF0(|n~&R3kTIp24F>HNh-;39NEU1%2rmjIU_mr$3{E>SKqF7YnoT#{WBE@>_k zU9w&BTqe0pb(!wMJ-@G#pnAaa z0V@Zz3}_wja=@2?!hz^O@xZ8oDFYP)QwL@Y+&=K zX!)R(gIWf)4*D<{A509Ul!K*%lLluG&K;aTc=F(VgHH@THTcZnb8ePyu5JU|2DuG! zt8rW5w#rTA);2^qL^^~W(r1XykhCF_hfEzZZOF_amxkOOa(~FfAy3?c++*G2-4ooC z+;_Mia=+q!-TjvPZ|?WpAG$wrf9C$u{moFxP--YMR5nyTRC}o2P=ldHLrsP%&4zjn zO&nS@R5kSA&?g?Ohl@wJN1R83N0LX1N2bSQk3x?b9c_=-A$2T6;9-K#=M}tSR z#|n>~9)~?nc%1S$>v7TJvd1-#8y-(Ro_qY^DfXm18Bf+z$5YSK(9_t{!PDI{#53G8 z(sPVwoM(b(lIM8ORL>00S)Ow}=PNynJQsK_^epi#_pI=&@~rV(?|H)W#W1a5Lxv>{ z1H)Dg+dJ&=uw%nc4m&;U^03>(?hbn}?D4SQhdm$ma@cDxp%>@#L^(yvS>ZS7f-fO$pPOm*)`@NJ0 zybgIC^*Z5o+Uqy3dtMK`9(g_Sdgk@g>$TTguRpv#4%Z((Wcaw@^M$c~AA8?mf$Uj(5Fxn|HVOI`0kM z-+6EI{=s{v_fhYQ-q*Zuc>n5s&-;P*WACTlpOij?kFk%bkA;twkFAe`kF!sIpFuuD ze1d(#d`A03`b7K0`o#Mr_$2zI_$Ykl`z-g_@AI24?(5_m={w1{%D3LP$#;eCD&H>O z&A#9JZui~kyT^B*?~lF*e9!ov^S$VM#rL}JP2W#`grC$;?x*Fa?`P!K*U!|?*{{Ff zaK90L%8`Df{KEW3`$hSU@k{la03=dcP*W6@HuizVqAax7}}t z-)_IXe*67?@;m5v*zfKLY=rHI;1T&FmW} zxAC|0ck>_WKg{3T-_PIQU*VtcKh=M_|4jdR{zd)^l>XoPbN);HRsJ3RUH)tRH~DYz z-|D~J|B(MV|NH)r{Ga+i_kZR8*8dOxPySyW?%WX*|+or1{8xBW*_7jdUF8 zJThct_Q=H}H;z0v@>ga5dn1z^#D00rvwQ1w0A(81QEx9;h8?5NH%=5@;D{6=)l1A2>8H zAaHD8Vqi+(guwK`%)p$${J_b9g@Gl3<$)D}ivz0zxxl)>hQOx46@jY)cL!b@B^YHf zDqvLZsOnK0Mx7jWanzMj*GJtP^?x?5{iZ5p+u;Ds8y(YsAuT#P~TAh(7@2((6G>m(CE;N z(5%p$(7e!s&?%wQLT7}|3Y{A|KeQ=yN9c_(L0G@A;IRC#%CNP{u*zHi0Fveh_Mlg5h)Rhi1`tVBB~>5BbG)qMl?sPjA)727_m8GZ^VI!gAqp}PDY%L z_$A_e#GQy2kys=iNk%e}Y@}ACZlpn^ainSFfXKm-Ln4PpdPWY9^o{gaMg~L%MTSIX zMwUdbi98YcB1$jHGb$l!R@8#1g;AwZG+CMrlIw(3mIz4)3 z^qlDV(IEQU=#uF2=*sBoXeAfj9^DnaCVE};hUm@F-$!qY{vmo-^q%Oe(I3W`jPV(h zHl}>c`Y|WQJQ?$5%=5HmQ&J;oy@E+#D| zD<(H4KW1vo^q843vt!C)7RA)ZERR_kql)Q>>55q!vp!~b%+Z+ZF}GrVi@B$ac^LB~ z=2^_km^U%+W2snaEF0S=Ry$TN)-cvM)+E+E)-u*7HYN6(*tXasvCrbP;s(S;#wElh z#f^`f5SJ5I7&kp`X58$!xpDL37R4=&tBG3@w=Aw9Zfo36afjoM#hr*d8+ShLV%+7p z2XT+$-o<^2`!ik`FOHYQQ}Il^alFzleptMBykGpt_)+m8@!|22@nhoS;(^4oV!7=#l7^=$+`BI3h73 zF*-3eacp8@Vshe~#L~pd#Hz&F#AS&MiOq>C5|!%`cO>pj+@E+L@krva#FL4q6K^Iy zN&J$8B#DwFNmPyBuQc+TC(!r!h z$!zkV6c=iVwd8a;+irrWpIjrN@Pk}%EXlHl)RKlDN|FX zr_4&3o1#pqO<9_drDWznv}yS_s3J?oyJFwpE15^{EqRL$KM`* zcl?9#kH)_m|7rXe1)>lsBnnbND-0CI3R8uJ!b+jEQTQt&6|stV#W=-y#RNsVVxnTY zVwPfoqDrwuQKx87tWc~{tX8xszEkX1oKsv>Tv1$C+*16exTkoic%pbV0hu70fKMPM zP!psR_Flp2*9lNz6zkeZsBn_7@MC3RZr z%+%S+)VZl;sTHYJskNy~Q(?HrcX$#Xz z)5_C2(hjCQN~hCZ(__V{J%M90y!5Kp`JTkm9d^7wr0y1JU;xf`QvNCcq@-wDpOv{*=F*~Cyqb{Q> zV{OKUjLjL}XKc^dnXxBhf5w4~iy2oku4UZFxRvo+#=VS(8ILo5&v-tOndmq%V&asE zbrW|@yfyKQGSei}CeuFCDbpp>J<~VSKQk~hI5RABbY^5`a;73PEpuXKc4ls7S!P{k zQ|9u_Rhey>9hu#kYcqFd?#Voqc_i~f=GDyWnYS|UX5P|e4kWM9s{mVG1pV~!+;$&uys$4AH{;T{C z`JW2}1!w_Tz!b0rS_L`RvjsbWCYnX+mjI>G;yr(u~rq(wU`mO6Qjrm3~uNTv}RMUaG7pJyCkCOjPDt7FCvC zR#sM5)>XE)Y(v@RvhT~bm+dUuQ?|eCK-tBz%VpQfZkF9HyIc04>~Y!Cvgc(l%SGk- z<&Ndv<SNY!ZAIpC(KU{vS{ABr=@^j@E%b%1#D}P!3ru=>R z$MQcH2^V3D@I~YzdXc?yQShSVMHP!yEZVc^+MEvmRxYSq zSXo-RsB&>-P34lxWtHufot52{>nb-?Zm#^Ua%<)G${ULXi?tRHSv+R3a^~Wdi#r#0 zEnc&D?c!65uPwg6_|f90i=QukwfJq7unMaZS4pav&tvX+IvFc9M-Ku+4531f&i>rxhx>{DY(bW)yt}PRo|(>YaDAv*Ob(>*Bq?*rRGV^vznJR zZ))Dxe60DiR#=PG;ZskJj| zYiifl9;*F~LpV8S#d&byTsoJ}P38)@>70^Vz%ArTxFuWz*UYWtl&xGl*Tt>j)^nS< zE!-|{H@A;F!ky$Ua@V+<+->eI_mcaA`^0@&f-E7H&`V@X`Yh32Vz9(%$HA^~|>|Sza$(<$dmeNbjmRc^gT57x0eyQV9m!(xp>z8g``oq#+mOiZO zQ>Rm>S7%sfTsNVvpl-UdZdTpgI%QpPU0Gd4T~%F8U3cA-N;`t9w}Yr0!YW zi@H~JZ&Z*RMCPx2(6W zx2t!ocdiet�eLUsAuazO{aL{h|6Z^;hff)xW5JUH`8Bef@{}&kceGrM$teVL-!> z29Jhe4c-l-8pb!IH_U5T+R)gry5T^>k%mVN?;5d2ype2V8repzM%_lsMyp2KM*Bv` zMwi9`je{D;H0C#!Hm+{m(|D}$T;s*YD~;D1Z#6z_eA4)=@kQh7#ML(}JGK{L{9(CpM4(5z_A zZ!Tz_)I6oRvbnK&dGo5~)y?hAoy|WrA8&rx{G|EWsp~byrL`y(R zP)lgb=$5FKq?Yk5sVx~TSuMFO`7H}uR<)dJxz=*C<#x;6mIp15THdw1Z~3D|`BBwJ zWva4JS*dJQ4k{;=hssOkqZ*+KP>oW>s3xe=Rhg>a@8_bqiVTo zm1?!BO?5}ww0X7pw2f#B zXbWl!ZA)*k%w{693rESe^XWCx3eQCF7AK4z)KCiu^ zy|sNu``z}J?Qh!Ow|{K^vqR9K-O;zhqQk1gw!^+-NXPIF-wywdz>e^a$PQ(6M{GxY zM@Glgj^d8$j)so*j&&UyJGOLe?bzM1uj9v#pF0k9T<*Bt@vh^KPI0GUr&FhE=g`iP zoxz>4ovEE^o#~wuJEwG(bT)Q&b?)lC)Ooe@M(3}ccRKHP8FX26xpWQa8rxLHlbN|1(O_62Yk&xbO$AXb z{ZPO3)B7jh)iEko5!)1lF(D?!l$ahfV|k~XJB%H{j$+5K?O8^y~^HTZ^v85 z+r>M^JH@-j2gjd^=f;cUTjB@f@wgWc<7YrCa6f1ZI)F}~Gw1@kfu7(=@DvyUMu9P4 zEXVL5fm(dvtSV{hI8S3SPB=xa##V^!Hw_(xCL&5yWoCU4G+Q3Aq{1yK@(!w z0Gr?i*bFbjU*K=>cXSVGgSwz@s3+=$#-j0PBFaH|XcC%=rlXl?5h_PZ&{FgcdKbNi z-bb6!Hnbg8p`GX;szDTu;z&a#!pKF3(KqM_I*QJtW^@U)pr81A`82)_-;Ph`GxY{q40%JCo~GDgtL@zUT79BiEYF#Vh^#Gm?8ER`-_i@1I5webK+F- zMX^AfB^HY%;;Z5Uahdp$xKrFM?iKfo)#4%XbCD6T=!!%P#V^D<@u+x4Y!WYum&6wF zs(44dE8Q!lNqwX&X{a<@8YyKNIy&ek?)n$i)edN({j+`gw%TweTa)~@o zo-dcm%jD(q3VD^hR^BFWm#gHRGLq}%2Kl($D4&wg%ID=~`Lc44a-Y&#X-6p?l}<`G zrMJ>o>91regOn^~j51D{pkyoal)o!)DQ_$9Diz9BrBd0hR4LWUA*Dv46{sW?Tk#a4 ze53rN+){p3?kIQFR_gs~TeXAQTkWg%S2NW?YL+@u9j{JQbJRR_k~&45trn|u)%of_ z)DP4xYNbl;P!Fip>Or+e6;xSORYP^v!)m?SpdM3iXb)-WS`Y1EEko<0_0tAu1GQ(h z=d|awTrFRltQBZ;w0YVBZJ}1Cm1`@t)!G_ut+rQ-X{?sekY;JN=4wQ%*BZ2ATBCMO zyQcl9-PC^3d+5FNNA*5>KT02<57Yc(qEFLj=tcSheW6~aFV^4Gm+EWu zwfcH}lU}9o()Z{e>x>@P6FSl@-O)Y0RrA z854~hBhQ#*Of{w%FB@}>`9`U+$auq8VXQJJgQ_qN7}Z9?fCg_!hHLmntq~bVjT6R6 zpSbTbU9qm? z*0>$+h#$ZY;x70R{5XCBXW^lEI39^d;~boa^YIj1ikIQ#cqLwqx8gncWBds|h#}@N zC1M5pIKUD95+A{5aTC6XzqixvzIK*9)E;h+wEtp{wR7!!d$Rq4J;N@r3+?ypy*6hz z*w^geoiwM7)86@$)5S@5dN{qD3}>)2-kIwxa>|`0&RY)U{L@+QY;-m|+nnvrM-Jzh z4sik}a=vitoTHR;!a3=jahjY9&d=_nZoa$3UE!{GH@P3WTir@`y9-?14cwGl=YH)T zagVwu+-CQ(d&Rx({^Z_rZ@a&Ft-S}mLEa3n+*{*q@_5hiY|ry*z0f=2o%UM1E8bP_ zy7#L;+@I_h__O>Xzt}JJEBtl-MxXlJXMEs8U+`sL^GzT7-}=Y=M*oz5)^GA#{G0x5 z|Bio`v?6JwGwDLQk)C7#8At|`A!IChmP{boWEy#q6p&e@gp`vdWGQ)@RFIFzPO_Wq zBL~Q*Ff4dF7#)lWa)bO}N-!;WF(?R@25W+K!G_@dU~5nr>YrKne5! z2TtGzwLwF0I`}2{J?t6|2#1Gb!|~z7Fel6lr-w7c!f*0IhhhbG%9Wo&Z zVJL)hh(jmzLJ|gH6n-DIjxwX?qN&mJXl7Ix&5mA)-i%g8R8$eIi#9|%qTSKH=s@&o zL`U%`5ur$k%!oww(TV6}bS7$wE=O0QYtfI<&(Ymf+f>(7_te9wj8yN`W2vW8Q~RX~ Uze@d4cv}6>&f5PMp0Dcu3uzZSZ~y=R delta 24720 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 diff --git a/SignUp/SignUp/SignUpView/ComplianceChecker.swift b/SignUp/SignUp/SignUpView/ComplianceChecker.swift index be64df3..ffee9da 100644 --- a/SignUp/SignUp/SignUpView/ComplianceChecker.swift +++ b/SignUp/SignUp/SignUpView/ComplianceChecker.swift @@ -30,25 +30,27 @@ struct ComplianceChecker { } } + private func generateRegexString(target : String, pattern : String) -> String { + guard let regex = try? NSRegularExpression(pattern: pattern) else { + return "" + } + + let regexedTarget = regex.matches(in: target, options: [], range: NSRange(location: 0, length: target.utf16.count)) + let resultString = regexedTarget.map({ + String(describing: target[Range($0.range, in: target)!]) + }).joined() + + return resultString + } + private func regexChekcing(target : String, pattern : String) -> Bool { - do { - let regex = try NSRegularExpression(pattern: pattern) - - let regexedTarget = regex.matches(in: target, options: [], range: NSRange(location: 0, length: target.utf16.count)) - let resultString = regexedTarget.map({ - String(describing: target[Range($0.range, in: target)!]) - }).joined() - - if resultString == "" { - return false - } - - if resultString != target { - return false - } - } catch { - print(error) + + let resultString = generateRegexString(target: target, pattern: pattern) + + if resultString != target { + return false } + return true } From 88f6c3f871da45f1d9c39146bb27bb7e7dac8a38 Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Fri, 2 Apr 2021 14:26:40 +0900 Subject: [PATCH 10/15] =?UTF-8?q?=ED=8F=B4=EB=8D=94=EC=A0=95=EB=A6=AC,=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=EC=9D=98=20=EB=8B=A4=ED=98=95=EC=84=B1=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit enum TextFormError으로 관리되던 에러를 protool ErrorCheckResult로 대체하여 다형성 구현 --- SignUp/SignUp.xcodeproj/project.pbxproj | 10 +-- .../UserInterfaceState.xcuserstate | Bin 62565 -> 63559 bytes .../SignUp/Extension/UILabel+Extension.swift | 42 ---------- .../SignUp/SignUpView/ComplianceChecker.swift | 47 ++++++----- .../SignUp/SignUpView/ErrorCheckResult.swift | 52 ++++++++++++ .../SignUpView/View/SignUpTextField.swift | 45 +++++++++++ SignUp/SignUp/View/SignUpTextField.swift | 75 ------------------ 7 files changed, 129 insertions(+), 142 deletions(-) delete mode 100644 SignUp/SignUp/Extension/UILabel+Extension.swift create mode 100644 SignUp/SignUp/SignUpView/ErrorCheckResult.swift create mode 100644 SignUp/SignUp/SignUpView/View/SignUpTextField.swift delete mode 100644 SignUp/SignUp/View/SignUpTextField.swift diff --git a/SignUp/SignUp.xcodeproj/project.pbxproj b/SignUp/SignUp.xcodeproj/project.pbxproj index 46426d6..0609029 100644 --- a/SignUp/SignUp.xcodeproj/project.pbxproj +++ b/SignUp/SignUp.xcodeproj/project.pbxproj @@ -16,10 +16,10 @@ B075D1012611BBC700731DAC /* TextFieldDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1002611BBC700731DAC /* TextFieldDelegate.swift */; }; B075D10B261207A600731DAC /* ComplianceChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D10A261207A600731DAC /* ComplianceChecker.swift */; }; B075D10E261209C300731DAC /* UITextField+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D10D261209C300731DAC /* UITextField+Extension.swift */; }; - B075D11126120A5900731DAC /* UILabel+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D11026120A5900731DAC /* UILabel+Extension.swift */; }; B075D1162612F4AD00731DAC /* UserInfomation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1152612F4AD00731DAC /* UserInfomation.swift */; }; B075D11A261300FB00731DAC /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D119261300FB00731DAC /* NetworkManager.swift */; }; B075D12026158BED00731DAC /* SignUpTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D11F26158BED00731DAC /* SignUpTextField.swift */; }; + B075D1262616003400731DAC /* ErrorCheckResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1252616003400731DAC /* ErrorCheckResult.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -34,10 +34,10 @@ B075D1002611BBC700731DAC /* TextFieldDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldDelegate.swift; sourceTree = ""; }; B075D10A261207A600731DAC /* ComplianceChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComplianceChecker.swift; sourceTree = ""; }; B075D10D261209C300731DAC /* UITextField+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextField+Extension.swift"; sourceTree = ""; }; - B075D11026120A5900731DAC /* UILabel+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UILabel+Extension.swift"; sourceTree = ""; }; B075D1152612F4AD00731DAC /* UserInfomation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfomation.swift; sourceTree = ""; }; B075D119261300FB00731DAC /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; B075D11F26158BED00731DAC /* SignUpTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignUpTextField.swift; sourceTree = ""; }; + B075D1252616003400731DAC /* ErrorCheckResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorCheckResult.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -70,7 +70,6 @@ B075D0E826119A7D00731DAC /* SignUp */ = { isa = PBXGroup; children = ( - B075D11E26158BDA00731DAC /* View */, B075D1132612121800731DAC /* Extension */, B075D0FE26119C0200731DAC /* SignUpView */, B075D0E926119A7D00731DAC /* AppDelegate.swift */, @@ -85,12 +84,14 @@ B075D0FE26119C0200731DAC /* SignUpView */ = { isa = PBXGroup; children = ( + B075D11E26158BDA00731DAC /* View */, B075D0ED26119A7D00731DAC /* SignUpViewController.swift */, B075D0EF26119A7D00731DAC /* Main.storyboard */, B075D1002611BBC700731DAC /* TextFieldDelegate.swift */, B075D10A261207A600731DAC /* ComplianceChecker.swift */, B075D119261300FB00731DAC /* NetworkManager.swift */, B075D1152612F4AD00731DAC /* UserInfomation.swift */, + B075D1252616003400731DAC /* ErrorCheckResult.swift */, ); path = SignUpView; sourceTree = ""; @@ -99,7 +100,6 @@ isa = PBXGroup; children = ( B075D10D261209C300731DAC /* UITextField+Extension.swift */, - B075D11026120A5900731DAC /* UILabel+Extension.swift */, ); path = Extension; sourceTree = ""; @@ -186,12 +186,12 @@ B075D0EE26119A7D00731DAC /* SignUpViewController.swift in Sources */, B075D0EA26119A7D00731DAC /* AppDelegate.swift in Sources */, B075D12026158BED00731DAC /* SignUpTextField.swift in Sources */, + B075D1262616003400731DAC /* ErrorCheckResult.swift in Sources */, B075D11A261300FB00731DAC /* NetworkManager.swift in Sources */, B075D1162612F4AD00731DAC /* UserInfomation.swift in Sources */, B075D1012611BBC700731DAC /* TextFieldDelegate.swift in Sources */, B075D10E261209C300731DAC /* UITextField+Extension.swift in Sources */, B075D0EC26119A7D00731DAC /* SceneDelegate.swift in Sources */, - B075D11126120A5900731DAC /* UILabel+Extension.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index e6aaade70a139c9c9ab41ee40dedd93a775b3288..de6caa571717bddd3c392533825890b12ab975f2 100644 GIT binary patch delta 31367 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 delta 31234 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಩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 diff --git a/SignUp/SignUp/Extension/UILabel+Extension.swift b/SignUp/SignUp/Extension/UILabel+Extension.swift deleted file mode 100644 index 8e74739..0000000 --- a/SignUp/SignUp/Extension/UILabel+Extension.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// UILabel+Extension.swift -// SignUp -// -// Created by 이다훈 on 2021/03/29. -// - -import UIKit - -extension UILabel { - func showMessage(type: TextFieldType, error: TextFormError) { - var messageString = String() - switch (type,error) { - case (TextFieldType.id,TextFormError.ok): - messageString = "사용 가능한 아이디입니다." - case (TextFieldType.id,TextFormError.wrong(.idIneligible)): - messageString = "5~20자의 영문 소문자, 숫자와 특수기호(_,-)만 사용 가능합니다." - case (TextFieldType.id,TextFormError.wrong(.idUsed)): - messageString = "이미 사용중인 아이디입니다." - case (TextFieldType.pw,TextFormError.ok): - messageString = "안전한 비밀번호입니다." - case (TextFieldType.pw,TextFormError.wrong(.pwNoNumber)): - messageString = "숫자를 최소 1자 이상 포함해주세요." - case (TextFieldType.pw,TextFormError.wrong(.pwNoSpecialCharacter)): - messageString = "특수문자를 최소 1자 이상 포함해주세요." - case (TextFieldType.pw,TextFormError.wrong(.pwNoUpperCase)): - messageString = "영문 대문자를 최소 1자 이상 포함해주세요." - case (TextFieldType.pw,TextFormError.wrong(.pwOutOfIndex)): - messageString = "8자 이상 16자 이하로 입력해주세요." - case (TextFieldType.pw2,TextFormError.ok): - messageString = "비밀번호가 일치합니다." - case (TextFieldType.pw2,TextFormError.wrong(.pwDifferent)): - messageString = "비밀번호가 일치하지 않습니다." - case (TextFieldType.name,TextFormError.wrong(.nameIsNil)): - messageString = "이름은 필수 입력 항목입니다." - default: - messageString = "" - } - self.text = messageString - } - -} diff --git a/SignUp/SignUp/SignUpView/ComplianceChecker.swift b/SignUp/SignUp/SignUpView/ComplianceChecker.swift index ffee9da..45bdb54 100644 --- a/SignUp/SignUp/SignUpView/ComplianceChecker.swift +++ b/SignUp/SignUp/SignUpView/ComplianceChecker.swift @@ -10,10 +10,10 @@ import Foundation struct ComplianceChecker { let networkManager = NetworkManager() - func check(target textField: SignUpTextField, closure : @escaping (TextFormError)->Void = {_ in }) -> TextFormError { + func check(target textField: SignUpTextField, closure : @escaping (ErrorCheckResult)->Void = {_ in }) -> ErrorCheckResult { guard let text = textField.text else { - return .none + return ErrorResult.init() } switch textField.textFieldType { @@ -26,7 +26,7 @@ struct ComplianceChecker { case .name: return checkNameIsNil(with: text) default: - return .none + return ErrorResult.init() } } @@ -47,6 +47,10 @@ struct ComplianceChecker { let resultString = generateRegexString(target: target, pattern: pattern) + if resultString == "" { + return false + } + if resultString != target { return false } @@ -54,20 +58,23 @@ struct ComplianceChecker { return true } - private func checkIdTextForm(with text : String, closure: @escaping (TextFormError)->Void) -> TextFormError{ - var errorChecker : TextFormError = .none + private func checkIdTextForm(with text : String, closure: @escaping (ErrorCheckResult)->Void) -> ErrorCheckResult{ + var errorChecker = ErrorResult() networkManager.getUserList(closure: { userList in if let userList = userList { if userList.contains(text) { - errorChecker = .wrong(.idUsed) + errorChecker.isError = true + errorChecker.message = ErrorMessage.idUsed.rawValue } else { - errorChecker = .ok + errorChecker.isError = false + errorChecker.message = ErrorMessage.idIsOk.rawValue } if !regexChekcing(target: text, pattern: "([^A-Z][0-9a-z-_]).{3,18}") { - errorChecker = .wrong(.idIneligible) + errorChecker.isError = true + errorChecker.message = ErrorMessage.idIneligible.rawValue } closure(errorChecker) } @@ -75,27 +82,27 @@ struct ComplianceChecker { return errorChecker } - private func checkPwTextForm(with text : String) -> TextFormError { + private func checkPwTextForm(with text : String) -> ErrorCheckResult { if !regexChekcing(target: text, pattern :"([A-Za-z0-9!@#$%]).{7,15}") { - return .wrong(.pwOutOfIndex) + return ErrorResult.init(isError: true, message: ErrorMessage.pwOutOfIndex.rawValue) } if !regexChekcing(target: text, pattern :"^.*(?=.*[A-Z])[A-Za-z0-9!@#$%].*$") { - return .wrong(.pwNoUpperCase) + return ErrorResult.init(isError: true, message: ErrorMessage.pwNoUpperCase.rawValue) } if !regexChekcing(target: text, pattern :"^.*(?=.*[0-9])[A-Za-z0-9!@#$%].*$") { - return .wrong(.pwNoNumber) + return ErrorResult.init(isError: true, message: ErrorMessage.pwNoNumber.rawValue) } if !regexChekcing(target: text, pattern :"^.*(?=.*[!@#$%])[A-Za-z0-9!@#$%].*$") { - return .wrong(.pwNoSpecialCharacter) + return ErrorResult.init(isError: true, message: ErrorMessage.pwNoSpecialCharacter.rawValue) } - return .ok + return ErrorResult.init(isError: false, message: ErrorMessage.pwIsOk.rawValue) } - private func checkPwDuplicated(with textField : SignUpTextField) -> TextFormError { + private func checkPwDuplicated(with textField : SignUpTextField) -> ErrorCheckResult { let optionalFieldArray = textField.superview?.subviews.filter({ let item = $0 as? SignUpTextField @@ -106,19 +113,19 @@ struct ComplianceChecker { }) as? [SignUpTextField] guard let fieldArray = optionalFieldArray else { - return .none + return ErrorResult() } if fieldArray[1].text == fieldArray[2].text { - return .ok + return ErrorResult.init(isError: false, message: ErrorMessage.pw2IsOk.rawValue) } else { - return .wrong(.pwDifferent) + return ErrorResult.init(isError: true, message: ErrorMessage.pw2Different.rawValue) } } - private func checkNameIsNil(with text: String) -> TextFormError { - return text == "" ? .wrong(.nameIsNil) : .ok + private func checkNameIsNil(with text: String) -> ErrorCheckResult { + return text == "" ? ErrorResult.init(isError: true, message: ErrorMessage.nameIsNil.rawValue) : ErrorResult.init(isError: false, message: "") } } diff --git a/SignUp/SignUp/SignUpView/ErrorCheckResult.swift b/SignUp/SignUp/SignUpView/ErrorCheckResult.swift new file mode 100644 index 0000000..08f45f2 --- /dev/null +++ b/SignUp/SignUp/SignUpView/ErrorCheckResult.swift @@ -0,0 +1,52 @@ +// +// ErrorCheckResult.swift +// SignUp +// +// Created by 이다훈 on 2021/04/01. +// + +import UIKit + +protocol ErrorCheckResult { + var isError : Bool? {get set} + var message : String {get set} + func errorColor () -> UIColor +} + +class ErrorResult : ErrorCheckResult{ + var isError: Bool? + var message: String + + init(isError : Bool?, message text : String ) { + self.isError = isError + self.message = text + } + + convenience init() { + self.init(isError: nil, message : "") + } + + func errorColor() -> UIColor { + guard let error = self.isError else{ + return UIColor.black + } + return error ? UIColor.red : UIColor.green + } +} + +enum ErrorMessage : String { + case idIsOk = "사용 가능한 아이디입니다." + case idIneligible = "5~20자의 영문 소문자, 숫자와 특수기호(_,-)만 사용 가능합니다." + case idUsed = "이미 사용중인 아이디입니다." + case pwIsOk = "안전한 비밀번호입니다." + case pwNoNumber = "숫자를 최소 1자 이상 포함해주세요." + case pwNoSpecialCharacter = "특수문자를 최소 1자 이상 포함해주세요." + case pwNoUpperCase = "영문 대문자를 최소 1자 이상 포함해주세요." + case pwOutOfIndex = "8자 이상 16자 이하로 입력해주세요." + case pw2IsOk = "비밀번호가 일치합니다." + case pw2Different = "비밀번호가 일치하지 않습니다." + case nameIsNil = "이름은 필수 입력 항목입니다." +} + + + diff --git a/SignUp/SignUp/SignUpView/View/SignUpTextField.swift b/SignUp/SignUp/SignUpView/View/SignUpTextField.swift new file mode 100644 index 0000000..61ebbe1 --- /dev/null +++ b/SignUp/SignUp/SignUpView/View/SignUpTextField.swift @@ -0,0 +1,45 @@ +// +// SignUpTextField.swift +// SignUp +// +// Created by 이다훈 on 2021/04/01. +// +import Foundation +import UIKit + +enum TextFieldType : Int { + case id + case pw + case pw2 + case name +} + +class SignUpTextField: UITextField { + var relatedLabel : UILabel? + var textFieldType : TextFieldType? + + override init(frame: CGRect) { + super.init(frame: frame) + self.borderStyle = .line + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + self.borderStyle = .line + } + + func changeStyle(with error : ErrorCheckResult ) { + guard let label = relatedLabel else { + return + } + + DispatchQueue.main.async { + let color = error.errorColor() + self.changeBorder(color: color.cgColor) + label.isHidden = false + label.textColor = color + label.text = error.message + } + } + +} diff --git a/SignUp/SignUp/View/SignUpTextField.swift b/SignUp/SignUp/View/SignUpTextField.swift deleted file mode 100644 index aae419c..0000000 --- a/SignUp/SignUp/View/SignUpTextField.swift +++ /dev/null @@ -1,75 +0,0 @@ -// -// SignUpTextField.swift -// SignUp -// -// Created by 이다훈 on 2021/04/01. -// -import Foundation -import UIKit - -enum TextFieldType : Int { - case id - case pw - case pw2 - case name -} - -enum TextFormError { - case ok - case wrong(_ field: WrongType) - case none - - enum WrongType { - case idIneligible - case idUsed - case pwOutOfIndex - case pwNoUpperCase - case pwNoNumber - case pwNoSpecialCharacter - case nameIsNil - case pwDifferent - } -} - -class SignUpTextField: UITextField { - var relatedLabel : UILabel? - var textFieldType : TextFieldType? - var errorType : TextFormError = .none - - override init(frame: CGRect) { - super.init(frame: frame) - self.borderStyle = .line - } - - required init?(coder: NSCoder) { - super.init(coder: coder) - self.borderStyle = .line - } - - func changeStyle(with error : TextFormError ) { - guard let type = self.textFieldType else { - return - } - - guard let label = relatedLabel else { - return - } - - DispatchQueue.main.async { - label.showMessage(type: type, error: error) - switch error { - case .ok: - self.changeBorder(color: UIColor.green.cgColor) - label.isHidden = false - label.textColor = UIColor.green - case .wrong: - self.changeBorder(color: UIColor.red.cgColor) - label.isHidden = false - label.textColor = UIColor.red - default: - return - } - } - } - -} From 1b15ca043188b7d48c92a481bb5fea085e599ea4 Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Fri, 2 Apr 2021 15:05:14 +0900 Subject: [PATCH 11/15] =?UTF-8?q?NetworkManager:=20Singleton,=20serialize?= =?UTF-8?q?=20=EA=B8=B0=EB=8A=A5=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NetworkManager에 싱글톤 패턴 적용. ComplianceChecker에서 NetworkManager 인스턴스 제거 getUserList() 내부의 serialize 기능 분리 --- .../UserInterfaceState.xcuserstate | Bin 63559 -> 64286 bytes .../SignUp/SignUpView/ComplianceChecker.swift | 3 +-- SignUp/SignUp/SignUpView/NetworkManager.swift | 21 +++++++++++++----- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index de6caa571717bddd3c392533825890b12ab975f2..18ac5a1699153b7e4a74d48edf352f4011772c0f 100644 GIT binary patch delta 23479 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 diff --git a/SignUp/SignUp/SignUpView/ComplianceChecker.swift b/SignUp/SignUp/SignUpView/ComplianceChecker.swift index 45bdb54..82ef307 100644 --- a/SignUp/SignUp/SignUpView/ComplianceChecker.swift +++ b/SignUp/SignUp/SignUpView/ComplianceChecker.swift @@ -8,7 +8,6 @@ import Foundation struct ComplianceChecker { - let networkManager = NetworkManager() func check(target textField: SignUpTextField, closure : @escaping (ErrorCheckResult)->Void = {_ in }) -> ErrorCheckResult { @@ -61,7 +60,7 @@ struct ComplianceChecker { private func checkIdTextForm(with text : String, closure: @escaping (ErrorCheckResult)->Void) -> ErrorCheckResult{ var errorChecker = ErrorResult() - networkManager.getUserList(closure: { userList in + NetworkManager.shared.getUserList(closure: { userList in if let userList = userList { if userList.contains(text) { diff --git a/SignUp/SignUp/SignUpView/NetworkManager.swift b/SignUp/SignUp/SignUpView/NetworkManager.swift index 4da1588..08196de 100644 --- a/SignUp/SignUp/SignUpView/NetworkManager.swift +++ b/SignUp/SignUp/SignUpView/NetworkManager.swift @@ -7,6 +7,8 @@ import Foundation class NetworkManager { + static var shared = NetworkManager() + private let url = URL.init(string: "https://8r6ruzgzve.execute-api.ap-northeast-2.amazonaws.com/default/SwiftCamp") func getUserList(closure : @escaping ([String]?) -> Void) { @@ -16,16 +18,25 @@ class NetworkManager { var request = URLRequest(url: url) request.httpMethod = "GET" URLSession.shared.dataTask(with: request, completionHandler: {(data,response,error) in - guard let data = data else { - return - } - let decoder = try? JSONSerialization.jsonObject(with: data, options: []) as? Array - guard let userList = decoder?.compactMap({$0}) else { return } + + let userList = self.serialize(data: data) closure(userList) }).resume() } + func serialize(data : Data?) -> Array { + guard let data = data else { + return [String]() + } + let decoder = try? JSONSerialization.jsonObject(with: data, options: []) as? Array + guard let userList = decoder?.compactMap({$0}) else { + return [String]() + + } + return userList + } + func postUser(userInfo : UserInformation) { guard let url = self.url else { return From 02f9dc6f5009981acab868f814295914d251f81c Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Fri, 2 Apr 2021 17:49:44 +0900 Subject: [PATCH 12/15] =?UTF-8?q?=EB=84=A4=ED=8A=B8=EC=9B=8C=ED=81=AC=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=EC=97=90=EC=84=9C=20=ED=8C=90=EB=8B=A8=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 64286 -> 63159 bytes .../SignUp/SignUpView/ComplianceChecker.swift | 37 +++++++++++------- .../SignUp/SignUpView/TextFieldDelegate.swift | 4 +- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index 18ac5a1699153b7e4a74d48edf352f4011772c0f..ac5d9dbad329b30bfcbdbc28a7eb898316867bd7 100644 GIT binary patch delta 24345 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 Rr|Exv`PBc_oFDYC-)kKYez=9wk&5FH6V~Zux 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%0D#E> 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

    2Sy4XNP+Z&mG=5QjWAE<0y61bu@QO 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 diff --git a/SignUp/SignUp/SignUpView/ComplianceChecker.swift b/SignUp/SignUp/SignUpView/ComplianceChecker.swift index 82ef307..2934eb1 100644 --- a/SignUp/SignUp/SignUpView/ComplianceChecker.swift +++ b/SignUp/SignUp/SignUpView/ComplianceChecker.swift @@ -58,29 +58,36 @@ struct ComplianceChecker { } private func checkIdTextForm(with text : String, closure: @escaping (ErrorCheckResult)->Void) -> ErrorCheckResult{ - var errorChecker = ErrorResult() + let errorChecker = ErrorResult() + + if !regexChekcing(target: text, pattern: "([^A-Z][0-9a-z-_]).{3,18}") { + errorChecker.isError = true + errorChecker.message = ErrorMessage.idIneligible.rawValue + return errorChecker + } NetworkManager.shared.getUserList(closure: { userList in if let userList = userList { - - if userList.contains(text) { - errorChecker.isError = true - errorChecker.message = ErrorMessage.idUsed.rawValue - } else { - errorChecker.isError = false - errorChecker.message = ErrorMessage.idIsOk.rawValue - } - - if !regexChekcing(target: text, pattern: "([^A-Z][0-9a-z-_]).{3,18}") { - errorChecker.isError = true - errorChecker.message = ErrorMessage.idIneligible.rawValue - } - closure(errorChecker) + decideIdError(target: text, array: userList, do: closure) } }) return errorChecker } + private func decideIdError (target text : String, array userList : [String], do closure: @escaping (ErrorCheckResult)->Void) { + let errorChecker = ErrorResult() + + if userList.contains(text) { + errorChecker.isError = true + errorChecker.message = ErrorMessage.idUsed.rawValue + } else { + errorChecker.isError = false + errorChecker.message = ErrorMessage.idIsOk.rawValue + } + + closure(errorChecker) + } + private func checkPwTextForm(with text : String) -> ErrorCheckResult { if !regexChekcing(target: text, pattern :"([A-Za-z0-9!@#$%]).{7,15}") { return ErrorResult.init(isError: true, message: ErrorMessage.pwOutOfIndex.rawValue) diff --git a/SignUp/SignUp/SignUpView/TextFieldDelegate.swift b/SignUp/SignUp/SignUpView/TextFieldDelegate.swift index eccf59e..1fe2176 100644 --- a/SignUp/SignUp/SignUpView/TextFieldDelegate.swift +++ b/SignUp/SignUp/SignUpView/TextFieldDelegate.swift @@ -11,7 +11,7 @@ class TextFieldDelegate: NSObject, UITextFieldDelegate { let complianceChecker = ComplianceChecker() - func textFieldDidEndEditing(_ textField: UITextField) { + func textFieldDidChangeSelection(_ textField: UITextField) { guard let textField = textField as? SignUpTextField else { return } @@ -21,6 +21,8 @@ class TextFieldDelegate: NSObject, UITextFieldDelegate { }) textField.changeStyle(with: checkResult) + + return } func textFieldShouldReturn(_ textField: UITextField) -> Bool { From b51b618a8f62e63534ae76912cfa94d2488da35d Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Sun, 4 Apr 2021 11:31:28 +0900 Subject: [PATCH 13/15] =?UTF-8?q?postUser=20Result<>=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 63159 -> 63919 bytes SignUp/SignUp/SignUpView/NetworkManager.swift | 17 +++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index ac5d9dbad329b30bfcbdbc28a7eb898316867bd7..e785f5691c2457e4e7c47f8320d01fc8166945e8 100644 GIT binary patch delta 23716 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 diff --git a/SignUp/SignUp/SignUpView/NetworkManager.swift b/SignUp/SignUp/SignUpView/NetworkManager.swift index 08196de..34708c7 100644 --- a/SignUp/SignUp/SignUpView/NetworkManager.swift +++ b/SignUp/SignUp/SignUpView/NetworkManager.swift @@ -37,24 +37,29 @@ class NetworkManager { return userList } - func postUser(userInfo : UserInformation) { + func postUser (input : T, closure : @escaping (Result) -> Void) { + guard let url = self.url else { return } - let sendData = try? JSONEncoder().encode(userInfo) + + let sendData = try? JSONEncoder().encode(input) var request = URLRequest(url: url) request.httpMethod = "POST" request.httpBody = sendData URLSession.shared.dataTask(with: request, completionHandler: {(data,response,error) in + guard let data = data else { - return + return closure(.failure(error!)) } - let decoder = try? JSONDecoder().decode(NetworkResponse.self, from: data) + + let decoder = try? JSONDecoder().decode(T.self, from: data) guard let returnData = decoder else { - return + return closure(.failure(error!)) } - // 필요한 내용 하단에 구현 + + closure(.success(returnData)) }).resume() } } From a34f127b591c0f39a8c53dcf02ba6e7bf6405b39 Mon Sep 17 00:00:00 2001 From: dahun-lee-daji Date: Mon, 5 Apr 2021 12:06:24 +0900 Subject: [PATCH 14/15] =?UTF-8?q?UI=20Update=20=EC=A3=BC=EC=B2=B4=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit observer pattern사용하여 View-> VC로 정보 전달 -> 정보를 바탕으로 UI갱신. --- SignUp/SignUp.xcodeproj/project.pbxproj | 4 ++ .../UserInterfaceState.xcuserstate | Bin 63919 -> 66439 bytes .../Notification.name+Extension.swift | 13 +++++++ .../SignUpView/Base.lproj/Main.storyboard | 3 +- .../SignUpView/SignUpViewController.swift | 22 +++++++++++ .../SignUp/SignUpView/TextFieldDelegate.swift | 35 +++++++++++++++++- 6 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 SignUp/SignUp/Extension/Notification.name+Extension.swift diff --git a/SignUp/SignUp.xcodeproj/project.pbxproj b/SignUp/SignUp.xcodeproj/project.pbxproj index 0609029..9e869ca 100644 --- a/SignUp/SignUp.xcodeproj/project.pbxproj +++ b/SignUp/SignUp.xcodeproj/project.pbxproj @@ -20,6 +20,7 @@ B075D11A261300FB00731DAC /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D119261300FB00731DAC /* NetworkManager.swift */; }; B075D12026158BED00731DAC /* SignUpTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D11F26158BED00731DAC /* SignUpTextField.swift */; }; B075D1262616003400731DAC /* ErrorCheckResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D1252616003400731DAC /* ErrorCheckResult.swift */; }; + B075D12B26195E2200731DAC /* Notification.name+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B075D12A26195E2100731DAC /* Notification.name+Extension.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -38,6 +39,7 @@ B075D119261300FB00731DAC /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; B075D11F26158BED00731DAC /* SignUpTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignUpTextField.swift; sourceTree = ""; }; B075D1252616003400731DAC /* ErrorCheckResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorCheckResult.swift; sourceTree = ""; }; + B075D12A26195E2100731DAC /* Notification.name+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification.name+Extension.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -100,6 +102,7 @@ isa = PBXGroup; children = ( B075D10D261209C300731DAC /* UITextField+Extension.swift */, + B075D12A26195E2100731DAC /* Notification.name+Extension.swift */, ); path = Extension; sourceTree = ""; @@ -186,6 +189,7 @@ B075D0EE26119A7D00731DAC /* SignUpViewController.swift in Sources */, B075D0EA26119A7D00731DAC /* AppDelegate.swift in Sources */, B075D12026158BED00731DAC /* SignUpTextField.swift in Sources */, + B075D12B26195E2200731DAC /* Notification.name+Extension.swift in Sources */, B075D1262616003400731DAC /* ErrorCheckResult.swift in Sources */, B075D11A261300FB00731DAC /* NetworkManager.swift in Sources */, B075D1162612F4AD00731DAC /* UserInfomation.swift in Sources */, diff --git a/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate b/SignUp/SignUp.xcodeproj/project.xcworkspace/xcuserdata/idahun.xcuserdatad/UserInterfaceState.xcuserstate index e785f5691c2457e4e7c47f8320d01fc8166945e8..4e977a524ce006fc8795e63ea6906394edc1329d 100644 GIT binary patch delta 29247 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 diff --git a/SignUp/SignUp/Extension/Notification.name+Extension.swift b/SignUp/SignUp/Extension/Notification.name+Extension.swift new file mode 100644 index 0000000..a8230ae --- /dev/null +++ b/SignUp/SignUp/Extension/Notification.name+Extension.swift @@ -0,0 +1,13 @@ +// +// Notification.name+Extension.swift +// SignUp +// +// Created by 이다훈 on 2021/04/04. +// + +import Foundation + +extension Notification.Name { + static let uiUpdate = Notification.Name.init("uiUpdate") + static let nextButtonEnableCheck = Notification.Name.init("nextButtonEnableCheck") +} diff --git a/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard b/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard index 3f0aa6a..f9401c6 100644 --- a/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard +++ b/SignUp/SignUp/SignUpView/Base.lproj/Main.storyboard @@ -98,7 +98,7 @@ -