From f96f7762534d8bf701480574770d41c8210e9a4b Mon Sep 17 00:00:00 2001 From: snowywu Date: Sat, 20 Sep 2014 16:53:10 +0800 Subject: [PATCH 01/13] Fix about iOS 5 issues. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0xa8e66e0 {NSUnderlyingError=0xa8ac6c0 "The operation couldn’t be completed. (OSStatus error -9844.)", NSLocalizedDescription=A connection failure occurred} --- Classes/ASIHTTPRequest.m | 1 + 1 file changed, 1 insertion(+) diff --git a/Classes/ASIHTTPRequest.m b/Classes/ASIHTTPRequest.m index cb6bbeea..0fffa35e 100644 --- a/Classes/ASIHTTPRequest.m +++ b/Classes/ASIHTTPRequest.m @@ -1219,6 +1219,7 @@ - (void)startRequest [NSNumber numberWithBool:YES], kCFStreamSSLAllowsAnyRoot, [NSNumber numberWithBool:NO], kCFStreamSSLValidatesCertificateChain, kCFNull,kCFStreamSSLPeerName, + @"kCFStreamSocketSecurityLevelTLSv1_0SSLv3", kCFStreamSSLLevel, nil]; CFReadStreamSetProperty((CFReadStreamRef)[self readStream], From b72ff6e6bb6027d726ff76786c331ae5b622271e Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 17:17:38 +0800 Subject: [PATCH 02/13] change to markdown --- README.textile => README.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README.textile => README.markdown (100%) diff --git a/README.textile b/README.markdown similarity index 100% rename from README.textile rename to README.markdown From 6881c87262a881b26fdf5bcda091acbfc2b6d8ff Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 17:33:34 +0800 Subject: [PATCH 03/13] Add demo to workspace --- .../contents.xcworkspacedata | 10 +++++ .../xcshareddata/asi-http-request.xccheckout | 41 ++++++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 11540 bytes 3 files changed, 51 insertions(+) create mode 100644 asi-http-request.xcworkspace/contents.xcworkspacedata create mode 100644 asi-http-request.xcworkspace/xcshareddata/asi-http-request.xccheckout create mode 100644 asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/asi-http-request.xcworkspace/contents.xcworkspacedata b/asi-http-request.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..49545b59 --- /dev/null +++ b/asi-http-request.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/asi-http-request.xcworkspace/xcshareddata/asi-http-request.xccheckout b/asi-http-request.xcworkspace/xcshareddata/asi-http-request.xccheckout new file mode 100644 index 00000000..60b854b9 --- /dev/null +++ b/asi-http-request.xcworkspace/xcshareddata/asi-http-request.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + A56C7EB7-EEB1-4FDD-89D2-989C8BD962D9 + IDESourceControlProjectName + asi-http-request + IDESourceControlProjectOriginsDictionary + + FAF40D7FD305BB7D5BE5F87AE969BD7D31922D57 + http://git.oa.com/snowywu/asi-http-request.git + + IDESourceControlProjectPath + asi-http-request.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + FAF40D7FD305BB7D5BE5F87AE969BD7D31922D57 + .. + + IDESourceControlProjectURL + http://git.oa.com/snowywu/asi-http-request.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + FAF40D7FD305BB7D5BE5F87AE969BD7D31922D57 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + FAF40D7FD305BB7D5BE5F87AE969BD7D31922D57 + IDESourceControlWCCName + asi-http-request + + + + diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..89bcaa69026d55ebe438e4d293eba27dd34fc067 GIT binary patch literal 11540 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 Date: Fri, 6 Feb 2015 17:42:00 +0800 Subject: [PATCH 04/13] update target 5.1.1, for support 64bit --- .../UserInterfaceState.xcuserstate | Bin 11540 -> 11553 bytes iPhone Sample/Resources/Default-568h@2x.png | Bin 0 -> 18594 bytes iPhone.xcodeproj/project.pbxproj | 32 +++++++++++------- 3 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 iPhone Sample/Resources/Default-568h@2x.png diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate index 89bcaa69026d55ebe438e4d293eba27dd34fc067..ebd522a2d7ff3716d522b9e47c8d95a0be75140d 100644 GIT binary patch delta 6078 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 W^kw=2mAxCrm3QVu<-O|a%lRMEFCQ8J delta 6046 zcmZu!2Ygf2_rK@9te2NPUXtcz&?L}GY0DI-Xc;m~DQzjUl#~Vtqs3CTm>c%Az!Q*7 zTPTR^ElY+dA}F#15fBjp5d}rI@V{v(S88qi!>K<}mZM zSmLfOS+9rcvzjM`dZIiOK>bl68iI<@P&5pUL}4@*O+b^;Y$T$O&>XY^m7|qt75W6N zMxUaMXcO9rcA?#94?2jxLWj}U=sR>8ok4$~Tj)>p7rKq^puf>S=q~yf-9r!2e}F&& z3ebTb3}6HkSRe}AP#xk!kN}C$5E?;aXa>!p1-uL0p$B9`Pso8@;D=o34SCQX2Ecnz z2=Buf_y9sM4(7mIm|qVHo!*M4m)5E9D*<5EBFqM!}o9+ zF2F^&1lQm?+<@QVCftU=U3iKCV=Ti;tif8W!+LDNQP_!HxF(LnwQxL6z)AQm+yuXk z-@)(VmbevekJE8C+#UD8c{qUk;Qn|p9*W1{4{!)i!jth7JPR+xCAbu?#Gm5z;$;XW zgqg9-IA#(vjakSnViq$?n5E1zW;wHxS;c(9tYtPc+nF8AK4w32fH}x~A9OOqaC8!s1mY`hXBC$C-eT%HjjKKqgMOneX@HRz(K|@Yd zi1tCjQq&jqBW_Zi#8fF5fbx-{6b(d!NHr2&iVBc?F!2yC@rjSs)k0~WVtSM5zfGf+$!nu?~O>7*u!BelxV zho~6MB=MvvX%-2FThyB@Vj9ni@g`o>nVem!oSlmnqnL6u4}Fa0qXlRoT0{~^BB@R4 zkh-K^Ia-32A`iVvQ5mUElIS)!A#am+B1%n>4H_}npPv`Vs|avrVIUyh;cJVhc$XM$ zi5Ab9^s(B=HU|aKTS-IG zs1$8S+eu@3#b#A*e@1(M@3bl%d(plZI`)&dh_7nk3v>v@EL%om72+a`Gaem5M_&jY zBgroXkJAmMz}Z3?mQ)yeC04q0^aHw#Vm?7<(K+-ZI*)!r7tlp?3H?l(lNRJ%(vq|y ztw|fwmbCkXhUg0V6AmmbVZFB+K@3{|92$G(*c%&#c7Ry;qCA=trDl~dp(-AHWZglZ^Q z2GQUFFX>Kt68}rfHQc9MX%zV2RZk z1xfJsYs2qAGRY;q>F^nAeyGaDmXJpG2U$bYKz)J7IcO#(3S2;0c9qEUZ0S?>1k}0+CAA3T4(;1F@SJ$~7ev&a zGEYuMkvKs%&f9IEe`LYXqE{dd0q9F327Soj66ic zC}t&0fQc{(Cc_k%3e(6)GK!2Q?~^g)0}@&ZGvGrghM6!6W`jrw36n*nl$4R>WCitZ zH@ChHEP>_7umYCCGAMykC?jLZI5M70AQM->3Mhw_unImQlgMN;lguIuiEr~_l?3#g zU`u3Co5_?C*h;2SZIAR(37=7Ng`KdAOd}t@1jb(2|Jr6AfP-W@nL(E(XllLK%){`_ zt5T={j#1hyj?m`Bm1v;T%m*nm*E#Om&_}LU*RhGn9QdOZmCUV{(xKJGOb%$27kg|;u3AL^A7x7 zNj<0GU${rzxDOBDAv}V|@C5!7L6P2gDOpTP2qH@=eSe1PFC$uG=vn3OWQFrTzHe)iLIaz%wd)ICL1TgYWn$2wx+1n`9s)%IBbL`*bL`8 zr)I?G`iBI%(|ciHpuZ?MEI`ed6R}c(727D^bV^St#n#B_Lx~34X+W_+RuL^F`q85k zLiXC^E^J-jeRI)Ij)AIu?Ks}YVs*rL)M0t7uO@} z$p*5KY+6p4wkJc z11*CCivooa`#Pwy)Ec*?;uXaNZb!C1CqA4?v5h<6G_r&2dVy`6fwNvkE$)oFkk80Y z;_H$UdcIsw@@P_l-zo#yxYuiQ{5Y5FCVPnQWnk!>!LQBfi~Ci=s!GWKJg6!GaX#5s z<>h-3FAMPyvY&MM;-#Cz@W|Ipj>4nK0dkOG3_PEfrVCKEI8UD1 z{~L0QeEmPt11}?0sd3~*I=rR|mr-T&Q8qk5+2km-bu5w`5xlO7;I)|A)>dMA4PKk0 zt0C4_dQ_=&cT4d)l=S?AI`W}XY6IRV#w%+`@Fto%@yhCANGTV4+8V{R#b4k<_)Gj1 zK8(Mn81qnMou|;bPHvJ%VGzRL2!oG;E>iX$v?T$=iqE3bO|d6mCLX?Ckz|*|1zvw0 zd=uY6G5?!q@!wF6@8W+c&t9fH`wO{3c{WxIsiQ=LP^0N{KEux#6yY=S8@U>xt4gN2 z@GSm0A{Z&7c$KLbmNM0~3Z@z*)S}h;Dj`Q3arhp&PacqmbVa_+yrVHF)#Pay?6gXV z6}vg}9VobhY0b1@+A{5!6!I(#vM?yapbmq9#E4g&@e-Oq)x~6&Q>^dWOc#E`Ro4?4 z=E9(gXz?WLDu9I28@sEV8^OFU-gcVmk6}JwLSfK^K^q1gm3`-SrEG8H_F?2c!Hh>7 zGl7{HA+0=rk-vi;_ZMfnhf1?r`hx>Sb+!EhC9CvS&1l)wykKBKVa8y8??B7i?nHMY z(t&ur+T85-X&pTc&7~FXLR#J~qs8lT+9j?ue^C`H(4Q(wSMz>@c7(7{g!+0}g{Z4178B5sqQz zGV>^J#)QE_wuZqPhA2v(TO*_uO>?y=Z8?So#gU%Hp%NOXQl=~tsK~)qfrrA*iQB?p zt8{GzQ(oyspp;n=fxj-ZAkRP2?JsiIZ(O&wJFUI0e?|5%t7#dD)U=bUYKWM1%mzv? z%=$1mOPGyeaFbV|&1@q`O3K6FqTtSTe8%jiOu_7Ac7>r@7@|v=JB@9xvY8wvpP9{^Wd4#kCCQQ=lHn3jvPiO2 zQX(mntdVS&?2{ap9Fv@pT#?+9Jdiw+Jdr$=A}N+iq_U7yA+<{#QkS%v)FbstYe-|I zHKnzr3DP8KsPUfHLxz$9b&7o9@fhyv8~y5Y7%kE(J8%l}NsH~w(Qnpp* zDu*d&D_1J_D!)=5RvuBFRQ{~Iro5%Rr@XIx$YD;($vKt_88|a%;cQ%Wt|nKDOW^8p z4Y-C}W3CC8%(dd$aOqqI*NN-N<#2v3pL>rR!VTj_aHF_!+*EEl_aQfvo6RldmUHFY zDsC;ep4-T6=Dy^<<9^~Ub62>l-0$2U+@IWS?x{+yGO27TyUL-8R(Vy`RWYh0Rf~{n zuBuG6O|?U{Q?*;QSG7-dK=p;{OVwf3dDR8gCDmos71dSMHPsE(P1P;cUuvwjt7Fy4 z>UL_sdc68$b(wmDdb4_~dWU+adbj#l^&RzH^*!}N^<(va8m!T3c#TyPr4ck9jZafU z6RWAI>8vTxOw!EMh?+T?d7992&1TJ3&34Uanq8Vbn$I=+HODn4G^aFYG-owGYJSpO z)cmZurFp0|X=Ai4w7J@R?PTp7?J{ktcDc4(yGpxSyH&eg`K7L?a>|49n*cMJE1$JJEQwu_mA#@?vd_^?x~*B>+}Y_NpI8JLwbkarEjiJ(RbDN z)c4Zo>ig=0`T_bu`eFKM`j7PU^z-!#^=tIo^!xNj_224`>rd!U8R89Z8d@0I7}^=y z8`2G#hAcxDLyn=3VYFeaVVdDn!zRNC!*#>IhI@wlhKELtv6?Z_*xZ<7^c#B{1IE6_ zps~<6#5mOWfiX1AIKxb%~~^UD9wV|X?B~V%{9&S&B^92=72fhJlI@l zE;0`@hsnFTBwi_v1XSS*6YX>nVkEpe9mmS&b#mcDH)?JQ}QbW5fs z%hJ#Co@K0Mo@JxusO4MBamxwIDa$R(Jdf{tdp!$th23itn;k%t)|82i( zzbEJfpAaw97U~N1g_c6=kkD305mJTDLY@#51_*PXdF6+!C`VZ9kGsPj#Nj$ zG0IWwSn1g3IPK(}4yV@{?@V$wbGC4{bhdVOaE3ZMGo4w^F3xGra_8sH!_Je=)6TQb z^UjOT%g!s#+s^yWN6!CT$R&3vU22!kWpE|Ag04BPC9V~&9j-&Jqpt5y9Kw)9qsnItGg52b=>c`Te{o0Q`{ZgS?;dx9wB#* z+wbo0e$PG1JvRDw^gq#0JW7w=WA*qvbv*Sw4LwPow>?cgEj%4PnVu|9S5FU5PfssT zu4j^GjpvLPd0DT)8|C$Qt9ui?4ZKO-RBxKMtG9=@r?;1Pkaw_mh;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u literal 0 HcmV?d00001 diff --git a/iPhone.xcodeproj/project.pbxproj b/iPhone.xcodeproj/project.pbxproj index 704320fe..611d8112 100644 --- a/iPhone.xcodeproj/project.pbxproj +++ b/iPhone.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + B17A07941A84C25800537003 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17A07931A84C25800537003 /* Default-568h@2x.png */; }; + B17A07951A84C32000537003 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17A07931A84C25800537003 /* Default-568h@2x.png */; }; B50C1823121C26DB0055FCAB /* ClientCertificateTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B50C1822121C26DB0055FCAB /* ClientCertificateTests.m */; }; B50C182C121C26FA0055FCAB /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50C182B121C26FA0055FCAB /* Security.framework */; }; B50C1848121C27510055FCAB /* client.p12 in Resources */ = {isa = PBXBuildFile; fileRef = B50C1847121C27510055FCAB /* client.p12 */; }; @@ -143,6 +145,7 @@ /* Begin PBXFileReference section */ 1D6058910D05DD3D006BFB54 /* ASIHTTPRequest iPhone.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ASIHTTPRequest iPhone.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + B17A07931A84C25800537003 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "iPhone Sample/Resources/Default-568h@2x.png"; sourceTree = ""; }; B50C1821121C26DB0055FCAB /* ClientCertificateTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientCertificateTests.h; sourceTree = ""; }; B50C1822121C26DB0055FCAB /* ClientCertificateTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClientCertificateTests.m; sourceTree = ""; }; B50C182B121C26FA0055FCAB /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; @@ -405,6 +408,7 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + B17A07931A84C25800537003 /* Default-568h@2x.png */, B52325AC11CA05A8006C6E5A /* info.png */, B558B58911C7F637009B4627 /* iPhoneInfo.plist */, B558B58B11C7F63E009B4627 /* iPadInfo.plist */, @@ -647,6 +651,7 @@ B55B60740F765A990064029C /* iphone-icon.png in Resources */, B576D76611C7F4D90059B815 /* iPhoneMainWindow.xib in Resources */, B523254311CA01F1006C6E5A /* Sample.xib in Resources */, + B17A07941A84C25800537003 /* Default-568h@2x.png in Resources */, B50F661A1297FA45003887B1 /* strict.xcconfig in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -655,6 +660,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + B17A07951A84C32000537003 /* Default-568h@2x.png in Resources */, B56529A3101C8EDA000499CF /* iphone-tests-icon.png in Resources */, B50C1848121C27510055FCAB /* client.p12 in Resources */, B50F661B1297FA45003887B1 /* strict.xcconfig in Resources */, @@ -837,10 +843,10 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "iPhone Sample/iPhone_Prefix.pch"; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_VERSION = ""; HEADER_SEARCH_PATHS = "${SDK_DIR}/usr/include/libxml2"; INFOPLIST_FILE = "iPhone Sample/iPhoneInfo.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 3.1.3; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; PRODUCT_NAME = "ASIHTTPRequest iPhone"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; TARGETED_DEVICE_FAMILY = 1; @@ -857,10 +863,10 @@ COPY_PHASE_STRIP = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "iPhone Sample/iPhone_Prefix.pch"; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_VERSION = ""; HEADER_SEARCH_PATHS = "${SDK_DIR}/usr/include/libxml2"; INFOPLIST_FILE = "iPhone Sample/iPhoneInfo.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 3.1.3; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; PRODUCT_NAME = "ASIHTTPRequest iPhone"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; TARGETED_DEVICE_FAMILY = 1; @@ -884,10 +890,10 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "iPhone Sample/iPhone_Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = ""; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_VERSION = ""; HEADER_SEARCH_PATHS = "${SDK_DIR}/usr/include/libxml2"; INFOPLIST_FILE = "iPhone Sample/Tests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 3.2.2; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; LIBRARY_SEARCH_PATHS = ""; OTHER_LDFLAGS = ( "-ObjC", @@ -915,11 +921,11 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "iPhone Sample/iPhone_Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = ""; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_VERSION = ""; HEADER_SEARCH_PATHS = "${SDK_DIR}/usr/include/libxml2"; INFOPLIST_FILE = "iPhone Sample/Tests-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; - IPHONEOS_DEPLOYMENT_TARGET = 3.2.2; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; LIBRARY_SEARCH_PATHS = ""; OTHER_LDFLAGS = ( "-ObjC", @@ -943,10 +949,10 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "iPhone Sample/iPhone_Prefix.pch"; - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = ""; HEADER_SEARCH_PATHS = "${SDK_DIR}/usr/include/libxml2"; INFOPLIST_FILE = "iPhone Sample/iPadInfo.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 3.2; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; PRODUCT_NAME = "ASIHTTPRequest iPad"; TARGETED_DEVICE_FAMILY = 2; }; @@ -961,10 +967,10 @@ COPY_PHASE_STRIP = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "iPhone Sample/iPhone_Prefix.pch"; - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = ""; HEADER_SEARCH_PATHS = "${SDK_DIR}/usr/include/libxml2"; INFOPLIST_FILE = "iPhone Sample/iPadInfo.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 3.2; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; PRODUCT_NAME = "ASIHTTPRequest iPad"; TARGETED_DEVICE_FAMILY = 2; }; @@ -978,6 +984,7 @@ GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; @@ -991,6 +998,7 @@ GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; SDKROOT = iphoneos; }; name = Release; From 0f932bb7cb46a52330d506c7c0c2a4db325c159c Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 17:55:44 +0800 Subject: [PATCH 05/13] covert to 64bit for mac demo --- Classes/ASIHTTPRequest.m | 2 +- Mac Sample/AppDelegate.m | 6 +++--- Mac.xcodeproj/project.pbxproj | 14 ++++++-------- .../UserInterfaceState.xcuserstate | Bin 11553 -> 21286 bytes 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Classes/ASIHTTPRequest.m b/Classes/ASIHTTPRequest.m index 0fffa35e..5a71622e 100644 --- a/Classes/ASIHTTPRequest.m +++ b/Classes/ASIHTTPRequest.m @@ -4623,7 +4623,7 @@ + (unsigned long)maxUploadReadLength // We'll split our bandwidth allowance into 4 (which is the default for an ASINetworkQueue's max concurrent operations count) to give all running requests a fighting chance of reading data this cycle long long toRead = maxBandwidthPerSecond/4; - if (maxBandwidthPerSecond > 0 && (bandwidthUsedInLastSecond + toRead > maxBandwidthPerSecond)) { + if ((long long)maxBandwidthPerSecond > 0 && ((long long)bandwidthUsedInLastSecond + toRead > (long long)maxBandwidthPerSecond)) { toRead = (long long)maxBandwidthPerSecond-(long long)bandwidthUsedInLastSecond; if (toRead < 0) { toRead = 0; diff --git a/Mac Sample/AppDelegate.m b/Mac Sample/AppDelegate.m index 8d96372d..b57e9d96 100644 --- a/Mac Sample/AppDelegate.m +++ b/Mac Sample/AppDelegate.m @@ -358,15 +358,15 @@ - (void)tableViewDataFetchFinished:(ASIHTTPRequest *)request - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { - return [[self rowData] count]; + return (NSInteger)[[self rowData] count]; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { if ([[aTableColumn identifier] isEqualToString:@"image"]) { - return [[[self rowData] objectAtIndex:rowIndex] objectForKey:@"image"]; + return [[[self rowData] objectAtIndex:(NSUInteger)rowIndex] objectForKey:@"image"]; } else { - return [[[self rowData] objectAtIndex:rowIndex] objectForKey:@"description"]; + return [[[self rowData] objectAtIndex:(NSUInteger)rowIndex] objectForKey:@"description"]; } } diff --git a/Mac.xcodeproj/project.pbxproj b/Mac.xcodeproj/project.pbxproj index d6fa1b47..cc516900 100644 --- a/Mac.xcodeproj/project.pbxproj +++ b/Mac.xcodeproj/project.pbxproj @@ -62,7 +62,7 @@ B5B513860FBEE515002C74D0 /* GHUnitTestMain.m in Sources */ = {isa = PBXBuildFile; fileRef = B5B513850FBEE515002C74D0 /* GHUnitTestMain.m */; }; B5BF64E612FDE9CA00CBC324 /* GHUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B5BF64E512FDE9C900CBC324 /* GHUnit.framework */; }; B5C664BC100A6220004F3C96 /* ASIS3RequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B5C664BB100A6220004F3C96 /* ASIS3RequestTests.m */; }; - B5ED5A9412FEBAEC00A12511 /* GHUnit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B5BF64E512FDE9C900CBC324 /* GHUnit.framework */; }; + B5ED5A9412FEBAEC00A12511 /* GHUnit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B5BF64E512FDE9C900CBC324 /* GHUnit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -443,7 +443,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0420; + LastUpgradeCheck = 0610; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Mac" */; compatibilityVersion = "Xcode 3.2"; @@ -599,7 +599,7 @@ baseConfigurationReference = B515507810BD56E800608267 /* strict.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/External/GHUnit\""; GCC_C_LANGUAGE_STANDARD = "compiler-default"; @@ -631,7 +631,7 @@ baseConfigurationReference = B515507810BD56E800608267 /* strict.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/External/GHUnit\""; @@ -661,9 +661,9 @@ baseConfigurationReference = B515507810BD56E800608267 /* strict.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_C_LANGUAGE_STANDARD = "compiler-default"; GCC_DYNAMIC_NO_PIC = NO; @@ -687,9 +687,9 @@ baseConfigurationReference = B515507810BD56E800608267 /* strict.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; + COMBINE_HIDPI_IMAGES = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_C_LANGUAGE_STANDARD = "compiler-default"; GCC_ENABLE_OBJC_GC = unsupported; @@ -708,7 +708,6 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; GCC_C_LANGUAGE_STANDARD = "compiler-default"; GCC_OPTIMIZATION_LEVEL = 0; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -722,7 +721,6 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; GCC_C_LANGUAGE_STANDARD = "compiler-default"; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate index ebd522a2d7ff3716d522b9e47c8d95a0be75140d..79e8f394e91939b77ee685da9a295100ca52b27a 100644 GIT binary patch literal 21286 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 delta 6327 zcmZ`+1$b0P*B)8-y?5PVcSBkr5Hth}B)BvrArLGL$r6Gkgy6Dg(H1GPxJGa&TBNv? z(o!g{1q!8}utH3jV67IHn;P5J zKOZeXMQAZvj#i`fXcPJ#?L_<059kp31)WA`&{=d2T|{@$zvv#ij~<}^&_nbHJ;nko z#3C%l5-i0stif7rzz*!hE?fqe#a>(yN8n1h3a*Z8;Ak9!8{lTRIc|Yl;#N2TC*w}I zGwy;@{rF4V4QJurxDOtJhvH#)I39t=;|X{oo`k=_lkp5Z6VJm%crjjrzr}0NB)k@H z!kh6nyayk^NAR!sC_anN;q&-+{3pJH|G|&&V}b}KgivB87GfnfVkZvbBrZ~hlqGHw zMm{GMNhGOG{B=n^QlG?-1|*I&Ax%kpl0rI=j-(UmOuCQ^;v>CDACgUSNMACL3@4+= zI5LR@$viTjEFeqBQnHM!CF{s~vVm+QN64?_C^<%slN015IYmyBGvq8eM=q1!$#rs* z+#*lOGxD6grj!b(f-3!#r#h;q`@9AE;kM5^G&;xBfeS$7QZF&@vf?Wio<%58L7_2Y|Qa1i0uwc1)=+MZj zl`FWaRf!5}Mbpe-=nE7N7Boc38=)!4XAnn8p%RbmxygfTT(UUf@>A-V2(m0+8Q!a`YMo?%-M#v2Ujb? z=?+wz-NS;f6cX(&v8 z#rZjmjv=lH9YMdMqYwqPAi4-0M@`X5sLd9l7hBjd%C3p$Lmpm$I-o9yIeLL!LStwGO`#byUxHqv zHyB}z3ABKg&;dF^1|+3wDhB(Ou?EjM5`)JalHkNLd@!esE?C}a#bIoO4{j_|jl*)R zWI4eKXjOn!(3*MEhO<=Su)YxUSO;G~TWJ5*2W-R^#1&!_HbXqLDa2N6g9J!qnVHL# z30`o9`F$}c^jEwv*o{4%S|`S3rH2rbmOHo*yHV{@U19jMk92*G%R@4>gQR$O%-HY` zv{c5CU0Nr$>Yta^wU@6!Zf@G(B3v2OLbXebRK?X8?%q!D_wv0rSA?sE45n(h_MwDU zO-jqn^yM|m$jZykEk+xz$<`7_K_^h3!nIi`u!6vKa9xy->!dn9w*`?6rP_CDW51{+!0EPx7)jdP1R_!;=5<}c?*ybK0fg&*v?*Cfzwzd zT~PpMp!{Hg#^~<}6-v^TiMzLLoye-Z5NC!`$cO>=2&JJX^agdRMmKaQBdN;6E4YS6 zMX{%vHERqXUK(*W&O_mgaSrZ_b8$b&h8*Y%xr=dsJOB^GgPxLs4lokJJ2F2 zH97@P3juU03@N}t7+L~Q|Ev%|XX80A4E*l_Iv+3k2vqsF0EWW|NP6dxJ7y>pgR4~i zQoQ0Lk(GEA00bZ@B_S)bdvOpU4WW0w^M?(cw4(Icx%aumg?S) zcfPBwT`&$(O7guoG)wTHKwkKvOajh@1%VIoXo zqYrtv{{p`FE=QMOa;c#!AwyU3A20=`y*G3n|NW7w&+#o*c~c?D9W%!CQJi=2{r{Qy zADbBr&Fqu^!OSo@eu7`1@FM&aKf}*q2F!$6MffFtgg|Guo{vQvN96#1}A65J3_VD zCbL9A!w-}$)qNgKnvr-EzLYd4El5k!inJzQz0f=P6wt`~el+u9_1l~ymVDEd0 z(PYd=U?*RZ@ue6f6JY;a43clKzKBdFQ^-{Kp&T59L+?{Moy__WUSu|z0|($o7S$4q zr_DlA@X=@?DT1HiXGrSI7^Q?@8|3=Z+%Xg211QSLaaK%>N1QEDicQ!n%i5WE0s;wvesld$NseCp*YavWx77V{jZ!z)3g-r{N5og>!Ho zF04XfWFKluejo?PkK`cviTuoX&CS^CH%1SC!)& zUx14Rl%5R+(+S`ZVJc) z^oBenk62T1l{E!_z%|HV>I+;J7Wx0TBa#n+yrifw!u%@If?wm?G{y04MP@H!_5M!gP$M-_Gqq4FwNX2DP$%4hf8Z|s3-{nYJb?e;;R;#?g@uw&y)=xLqv338dBheX zl=a8(1fGiE8GB6%9;&lCl!~mJP>uA<>fOIr8tV+AA|g{Y^)d$JW%veUrTZ%W&v0~P z)tXh}Vq+^;tQ;9xwPLkeag8cAY#13^F}7CK#!(GxMOKZiQayQ4RE^Xc)!v4XQc{IA zDnynB6HV(evZS@Cxel!hFW@D-Dx&pi3`^YW0PCq(?t(Y!_G&|$VEq!>ls2QyX$#sC z-UP5HfMo%!3Sj=Tq{1X)f&-!14fA z1h6tBuPITG5bgS4MdKLf(!q52r&NrfehLAs4q#0HYnh7r_exZxBbS#T*9kg?36G`Y zHmYL=6F*nX_w;KzzVkc2k4wu-D`KA}pxVi-0cCHcZcn1q8U3` zNLPF-&8_0igRWw`4^pxdWNGJ3*V6Tj5$L)Ab{5bL0bJ%IPM}*r#7H54U5pjd9CRDq z$taL+r#k|;Yyi6p=`OlEfIR{1Ww>7+=ke1YLniL9(?|PMjkS0SRz;>_+GG2a7b`ea87Vt@Ko?z@KW$vh=fEa5Q>Bnp-gBOI)!C~ZlPCLPWYLy zys)CMk}y)(T-aIIQ#en!MtDhhPxwY87b!(5kyR8Ssw}D^swS!-iV{VO>WJ!zVnm64 zQCm?vQHrResIw?llqO0S`9ztbT+sy49ML+_cF}RsL$O3`6;}{95O)+05DyX$5f2lO z5YH0liO^miUeYOLP*qq=qCxk|ar%w3l>{bdvZa-6Y*5eI+9# z<0aE2GbOVnb0rTYucW-xB#n^zYf8IHGo{m{tEAsb*Gkt*H%fO%cT4w5_e&2;A4^}z zys`*ck}O5$mraySmQ9sSm(7&TmhF)pksXtrke!yDm7SMemfe;;kUf+=mOYidkz+ZP z3*};YRe1|}y1bV>Ti#dRPY&|Q@~QHme1?3Me2#pce1Uwme2sjaU%o;9oqV%=t9+Y$ zhx}*xY56^cK;cruz%u_5-98o+~mQyAx z{mMDYrOFk`RmwHWb;=FOAC*Uyr<7-u=ad(eHyr*5onrA|_3sdLnW)pOMO>OJZ+>TBvh)z{TG)GyVq zHAq7=0*y$c)|Ay$*JNvkX+~?NXr^hVYi4Q|`87*4D>WN6n>AZC+cd{Dmo+yuH#N64 z|7iZzJk>ncywtqbA}!I%wQg;MHcHz_+gcm1P0%K3leMYZG;O-pr_I!6X~$_7YY%F# zXs>GTYVT|R(>~Td)jsD`oRPC}4$j4uxzl>kaui@A68~E+~Py7-7D1V$k!=K|X@E7^(`~&_O|AK$TztM?w5}iz^ z(5ZA0x`sNRE>|~3H%|ApZh~%-ZnAEwE~uNKo26T+TdiB8Tc_Kg`%br6w^g@Iw?nr} zcV73m?xkL%cj{~ETj(?O!}LM@eEkBwf02H8on`1F-$W|H_SB5Hq14wH|#N-Fx)q~jB&;`#w261F~!)?*x8uvHx4rfjH8TW zjN^?Hjo%oj7-t#h8Rr`}8uu9Y8xI(NG9EG>Hl8TF6irJ3?f!%gE& zlTA}iLDOv0T+@7$f1zo$X_IN6>7eOn(=VoDrW2-9rZc9SrU&LYb31c}d8m1~*>4V* zN14Z%$Cq z?v^2zxt2|qqn5uc|5+Yeo?2d5URmB)Ygrpxn^{{}TU+D()&y&+HO-oC^;vgY4_nV# z&s%@9Ub6mfy=uKNC>Ep4rB@wOCOH(O6z zZ(Fu4&o;m|$Tq|_**4#{$W~xmY+GtuZrg0zX**=QWc%HA)ppHx-FCxv({|hTkL_PO zu?y@XyI*3L*%fw`U1R6$I=jK{vX{5V+2ie*_F?v^_7(Ph_OlL?!|4cfRCd&L#5o!} znmU?0+Bgy&$&U7p4vtBV<&M3MLypsqvyKanOO7j!YmV!V2aacsmyS11;*>fSPPLPB z>YR0*J)N_h`Oam|ZO((vU!BLDr<`Z~&dbiL&OeF({G=HBAI>XCbN9=oTX*AwB1^hA3a zcp7_BJRLn5o=i`cr>AF-XQ*d{C*T?F8S4ppW_V_K=6W7_u~+1kdKF%+SLZc)&0eQB k%v;GD*;4dVM8L5+NmbdZgrDdi7@hA40%uB>(^b From 5753f1f6589949fb53fba49b2f0441e1833d22f7 Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 22:17:27 +0800 Subject: [PATCH 06/13] fixed mac demo on ox 10.6 later version --- Mac Sample/English.lproj/MainMenu.xib | 6920 +++-------------- .../UserInterfaceState.xcuserstate | Bin 21286 -> 45521 bytes 2 files changed, 1046 insertions(+), 5874 deletions(-) diff --git a/Mac Sample/English.lproj/MainMenu.xib b/Mac Sample/English.lproj/MainMenu.xib index a4659bb5..219e4ac8 100644 --- a/Mac Sample/English.lproj/MainMenu.xib +++ b/Mac Sample/English.lproj/MainMenu.xib @@ -1,5874 +1,1046 @@ - - - - 1050 - 11A511 - 1617 - 1138 - 566.00 - - YES - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.WebKitIBPlugin - - - YES - 1617 - 518 - - - - YES - NSTextView - WebView - NSMenu - NSButton - NSCustomObject - NSImageView - NSImageCell - NSTableView - NSTextField - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSTableColumn - NSView - NSScrollView - NSTabViewItem - NSProgressIndicator - NSScroller - NSMenuItem - NSTabView - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.WebKitIBPlugin - - - YES - - YES - - - - - YES - - NSApplication - - - FirstResponder - - - NSApplication - - - AMainMenu - - YES - - - NewApplication - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - NewApplication - - YES - - - About NewApplication - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences… - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide NewApplication - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit NewApplication - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 1048576 - 2147483647 - - - submenuAction: - - File - - YES - - - New - n - 1048576 - 2147483647 - - - - - - Open… - o - 1048576 - 2147483647 - - - - - - Open Recent - - 1048576 - 2147483647 - - - submenuAction: - - Open Recent - - YES - - - Clear Menu - - 1048576 - 2147483647 - - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Close - w - 1048576 - 2147483647 - - - - - - Save - s - 1048576 - 2147483647 - - - - - - Save As… - S - 1179648 - 2147483647 - - - - - - Revert to Saved - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Page Setup... - P - 1179648 - 2147483647 - - - - - - - Print… - p - 1048576 - 2147483647 - - - - - - - - - Edit - - 1048576 - 2147483647 - - - submenuAction: - - Edit - - YES - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1179648 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Delete - - 1048576 - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Find - - 1048576 - 2147483647 - - - submenuAction: - - Find - - YES - - - Find… - f - 1048576 - 2147483647 - - - 1 - - - - Find Next - g - 1048576 - 2147483647 - - - 2 - - - - Find Previous - G - 1179648 - 2147483647 - - - 3 - - - - Use Selection for Find - e - 1048576 - 2147483647 - - - 7 - - - - Jump to Selection - j - 1048576 - 2147483647 - - - - - - - - - Spelling and Grammar - - 1048576 - 2147483647 - - - submenuAction: - - Spelling and Grammar - - YES - - - Show Spelling… - : - 1048576 - 2147483647 - - - - - - Check Spelling - ; - 1048576 - 2147483647 - - - - - - Check Spelling While Typing - - 1048576 - 2147483647 - - - - - - Check Grammar With Spelling - - 1048576 - 2147483647 - - - - - - - - - Substitutions - - 1048576 - 2147483647 - - - submenuAction: - - Substitutions - - YES - - - Smart Copy/Paste - f - 1048576 - 2147483647 - - - 1 - - - - Smart Quotes - g - 1048576 - 2147483647 - - - 2 - - - - Smart Links - G - 1179648 - 2147483647 - - - 3 - - - - - - - Speech - - 1048576 - 2147483647 - - - submenuAction: - - Speech - - YES - - - Start Speaking - - 1048576 - 2147483647 - - - - - - Stop Speaking - - 1048576 - 2147483647 - - - - - - - - - - - - Format - - 1048576 - 2147483647 - - - submenuAction: - - Format - - YES - - - Show Fonts - t - 1048576 - 2147483647 - - - - - - Show Colors - C - 1179648 - 2147483647 - - - - - - - - - View - - 1048576 - 2147483647 - - - submenuAction: - - View - - YES - - - Show Toolbar - t - 1572864 - 2147483647 - - - - - - Customize Toolbar… - - 1048576 - 2147483647 - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - Window - - YES - - - Minimize - m - 1048576 - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 1048576 - 2147483647 - - - submenuAction: - - Help - - YES - - - NewApplication Help - ? - 1048576 - 2147483647 - - - - - - - - _NSMainMenu - - - 7 - 2 - {{335, 236}, {644, 514}} - 1946157056 - ASIHTTPRequest Examples - NSWindow - - - - - 256 - - YES - - - 1290 - - {{11, 16}, {151, 20}} - - - 16392 - 1 - - - - 12 - {{6, 35}, {625, 465}} - - - - - YES - - 1 - - - 256 - - YES - - - 268 - {{11, 301}, {62, 32}} - - - - YES - - 67239424 - 134217728 - Go! - - LucidaGrande - 13 - 1044 - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{14, 348}, {577, 64}} - - - - YES - - 67239424 - 272629760 - Demonstrates fetching a web page synchronously, the HTML source will appear in the box below when the download is complete. Because this synchronous download is running in the main thread, the interface will lock until the download is complete. - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 282 - - YES - - - 2304 - - YES - - - 2322 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - NeXT font pasteboard type - NeXT ruler pasteboard type - WebURLsWithTitlesPboardType - public.url - - - {{0, 66}, {554, 14}} - - - - - - - - - - - - - YES - - - 6 - - - - 554 - 1 - - - 11239 - 0 - - - 3 - MQA - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - - - - - - YES - - YES - NSColor - NSUnderline - - - YES - - 1 - MCAwIDEAA - - - - - - - 1 - - 6 - {807, 10000000} - {223, 0} - - - - {{1, 1}, {554, 281}} - - - - - - - {4, 5} - - 12582912 - - YES - - YES - - - - TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym -SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA -AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA -AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA -AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - - - - - 3 - MCAwAA - - - - 4 - - - - 256 - {{555, 1}, {15, 281}} - - - - - _doScroller: - 0.9512195 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - - 1 - - _doScroller: - 1 - 0.94565220000000005 - - - {{17, 17}, {571, 283}} - - - - 133138 - - - - - - {{10, 33}, {605, 419}} - - - - - Synchronous - - - - - 2 - - - 256 - - YES - - - 268 - {{11, 274}, {74, 32}} - - YES - - 67239424 - 134217728 - Start - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{85, 274}, {90, 32}} - - YES - - 604110336 - 134217728 - Resume - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{14, 320}, {577, 92}} - - YES - - 67239424 - 272629760 - RGVtb25zdHJhdGVzIGZldGNoaW5nIGEgbGFyZ2UgZmlsZSBkaXJlY3RseSB0byBkaXNrLCB1cGRhdGlu -ZyB0aGUgcHJvZ3Jlc3MgYmFyIGJlbG93IHRvIHNob3cgaG93IG11Y2ggaGFzIGJlZW4gZG93bmxvYWRl -ZC4KCklmIHRoZSByZXF1ZXN0IGlzIHN0b3BwZWQgcGFydCB3YXkgdGhyb3VnaCwgdXNlIHRoZSByZXN1 -bWUgYnV0dG9uIHRvIHBpY2sgdXAgd2hlcmUgd2UgbGVmdCBvZmYuA - - - - - - - - - 268 - {{14, 215}, {553, 40}} - - YES - - 67239424 - 272629760 - The path to the file will appear here once the download is complete - - - - - - - - {{10, 33}, {605, 419}} - - File - - - - - Item 2 - - - 256 - - YES - - - 268 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{14, 169}, {190, 130}} - - YES - - 130560 - 33554432 - 0 - 0 - 2 - NO - - YES - - - - 268 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{207, 169}, {190, 130}} - - YES - - 130560 - 33554432 - 0 - 0 - 2 - NO - - YES - - - - 268 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{401, 169}, {190, 130}} - - YES - - 130560 - 33554432 - 0 - 0 - 2 - NO - - YES - - - - 268 - {{10, 306}, {62, 32}} - - YES - - 67239424 - 134217728 - Go! - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{14, 327}, {577, 85}} - - YES - - 67239424 - 272629760 - RGVtb25zdHJhdGVzIGEgZmV0Y2hpbmcgMyBpdGVtcyBhdCBvbmNlLCB1c2luZyBhbiBBU0lOZXR3b3Jr -UXVldWUgdG8gdHJhY2sgcHJvZ3Jlc3MuIEVhY2ggcmVxdWVzdCBoYXMgaXRzIGRvd25sb2FkUHJvZ3Jl -c3NEZWxlZ2F0ZSBzZXQgdG8gdGhlIHByb2dyZXNzIGluZGljYXRvciB1bmRlciB0aGUgaW1hZ2Ugdmll -dy4gVGhlIHF1ZXVlIG1hbmFnZXMgdGhlIG92ZXJhbGwgcHJvZ3Jlc3MgZGlzcGxheWVkIGF0IHRoZSBi -b3R0b20gb2YgdGhlIHdpbmRvdy4gCg - - - - - - - - - 268 - {{13, 17}, {577, 102}} - - YES - - 67239424 - 272629760 - V2hlbiBhY2N1cmF0ZSBwcm9ncmVzcyBpcyB0dXJuZWQgb2ZmLCBlYWNoIHJlcXVlc3Qgb25seSB1cGRh -dGVzIHByb2dyZXNzIHdoZW4gaXQgY29tcGxldGVzLiBUaGlzIG1lYW5zIHRoYXQgZWFjaCByZXF1ZXN0 -IGlzIHJlcHJlc2VudGVkIGJ5IHRoZSBzYW1lIGFtb3VudCBvZiBwcm9ncmVzcyBpbiB0aGUgcHJvZ3Jl -c3MgaW5kaWNhdG9yLgoKV2l0aCBhY2N1cmF0ZSBwcm9ncmVzcyB0dXJuZWQgb24sIHRoZSBxdWV1ZSB3 -aWxsIGZpcnN0IHBlcmZvcm0gYSBIRUFEIHJlcXVlc3QgZm9yIGVhY2ggaW1hZ2UgdG8gb2J0YWluIGl0 -cyBzaXplLiBSZXF1ZXN0cyB0aGVuIHVwZGF0ZSB0aGUgcHJvZ3Jlc3MgYXMgZGF0YSBpcyByZWNlaXZl -ZC4 - - - - - - - - - 268 - {{80, 315}, {172, 18}} - - YES - - 67239424 - 0 - Show accurate progress - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 1292 - - {{16, 152}, {186, 12}} - - 16648 - 1 - - - - 1292 - - {{208, 152}, {187, 12}} - - 16648 - 1 - - - - 1292 - - {{403, 152}, {186, 12}} - - 16648 - 1 - - - - 268 - {{14, 129}, {190, 17}} - - YES - - 68288064 - 138413056 - This image is 15KB - - - - - - - - - 268 - {{206, 129}, {191, 17}} - - YES - - 68288064 - 138413056 - This image is 176KB - - - - - - - - - 268 - {{401, 129}, {185, 17}} - - YES - - 68288064 - 138413056 - This image is 1.4MB - - - - - - - - {{10, 33}, {605, 419}} - - Queue - - - - - Item 3 - - - 256 - - YES - - - 268 - {{14, 365}, {577, 47}} - - YES - - 67239424 - 272629760 - Demonstrates fetching content from an area that requires HTTP authentication. You will be prompted for a username and password, enter 'topsecret' for both. - - - - - - - - - 268 - {{11, 208}, {62, 32}} - - YES - - 67239424 - 134217728 - Go! - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{15, 341}, {160, 18}} - - YES - - 67239424 - 0 - Use the Keychain - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{14, 253}, {577, 68}} - - YES - - 67239424 - 272629760 - If you turn on keychain support, successful authentication will result in the username and password you provided being stored in your keychain. The application will use these details rather than prompt you the next time. - - - - - - - - - 268 - {{14, 181}, {413, 17}} - - YES - - 67239488 - 272630784 - Top secret information will not appear here. - - - - - - - - {{10, 33}, {605, 419}} - - Authentication - - - - - Item 4 - - - 256 - - YES - - - 268 - {{14, 381}, {577, 31}} - - YES - - 67239424 - 272629760 - Demonstrates POSTing content to a URL, showing upload progress. - - - - - - - - - 268 - {{11, 345}, {62, 32}} - - YES - - 67239424 - 134217728 - Go! - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{14, 83}, {577, 256}} - - YES - - 67239424 - 272629760 - - - LucidaGrande - 13 - 16 - - - - - - - - {{10, 33}, {605, 419}} - - Upload - - - - - Item 5 - - - 256 - - YES - - - 268 - - YES - - - 2304 - - YES - - - 256 - {569, 269} - - YES - - - -2147483392 - {{224, 0}, {16, 17}} - - - YES - - image - 133 - 40 - 1000 - - 75628096 - 2048 - - - LucidaGrande - 11 - 3100 - - - 3 - MC4zMzMzMzI5ODU2AA - - - 6 - System - headerTextColor - - - - - 67239424 - 33554432 - - 0 - 0 - 0 - NO - - 3 - YES - YES - - - - 400 - 40 - 1000 - - 75628096 - 2048 - - - - - - - 67239424 - 4096 - Text Cell - - LucidaGrande - 11 - 16 - - - - 6 - System - controlBackgroundColor - - - - - 3 - YES - YES - - - - 3 - 2 - - 1 - MSAxIDEAA - - - 100 - 44040192 - - - 0 - 15 - 0 - NO - 0 - 1 - - - {{1, 1}, {569, 269}} - - - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - _doScroller: - 0.99591836734693873 - - - - -2147483392 - {{-100, -100}, {223, 15}} - - 1 - - _doScroller: - 0.57142859697341919 - - - {{17, 47}, {571, 271}} - - - 133650 - - - - QSAAAEEgAABCzAAAQswAAA - - - - 268 - {{14, 140}, {276, 17}} - - YES - - 68288064 - 272630784 - - - - - - - - - - 268 - {{434, 15}, {89, 25}} - - YES - - -2080244224 - 134217728 - Clear Cache - - - -2038152961 - 163 - - - 400 - 75 - - - - - 268 - {{531, 15}, {57, 25}} - - YES - - -2080244224 - 134217728 - Reload - - - -2038152961 - 163 - - - 400 - 75 - - - - - 268 - {{14, 326}, {577, 85}} - - YES - - 67239424 - 4194304 - The table view below is populated by downloading an XML file, then downloading the images from the URLs in the XML. The requests are configured to store their responses in the global ASIDownloadCache, and will re-use previously downloaded data if it exists rather than fetching it again. - - - - - - - - {{10, 33}, {605, 419}} - - Cache - - - - - Item 6 - - - 256 - - YES - - - 256 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple URL pasteboard type - Apple Web Archive pasteboard type - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - WebURLsWithTitlesPboardType - public.png - public.url - public.url-name - - - {{17, 85}, {571, 160}} - - - - - - - - YES - - YES - WebKitDefaultFixedFontSize - WebKitDefaultFontSize - WebKitMinimumFontSize - - - YES - - - - - - - YES - YES - - - - 268 - {{14, 344}, {577, 68}} - - - YES - - 67239424 - 4194304 - Demonstrates fetching a webpage with a single ASIWebPageRequest that downloads most external resources (images, stylesheets etc). These can be stored in a cache, or embeded directly in the HTML source. Once downloaded, a complete page may be cached indefinitely. - - - - - - - - - 268 - {{14, 315}, {480, 25}} - - - YES - - 67239424 - 4194304 - ASIWebPageRequest is an EXPERIMENTAL class, use at your own risk! - - LucidaGrande-Bold - 13 - 16 - - - - - - - - - 268 - {{536, 280}, {58, 32}} - - - YES - - 67239424 - 134217728 - Go - - - -2038284033 - 129 - - - 200 - 25 - - - - - 256 - - YES - - - 2304 - - YES - - - 2322 - {{0, -3}, {554, 14}} - - - - - - - HTML source will appear here - - - YES - - YES - NSFont - NSParagraphStyle - - - YES - - Monaco - 10 - 16 - - - 4 - - - - - - - - YES - - - 134 - - - - 554 - 1 - - - 12263 - 0 - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - - - - - - YES - - YES - NSColor - NSCursor - NSUnderline - - - YES - - - {8, -8} - 13 - - - - - - - 1 - - 6 - {554, 10000000} - {223, 11} - - - - {{1, 1}, {554, 58}} - - - - - - 4 - - - - 256 - {{555, 1}, {15, 58}} - - - - _doScroller: - 1 - 0.85256409645080566 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{17, 17}, {571, 60}} - - - 133138 - - - - - - - 268 - {{17, 286}, {517, 22}} - - - YES - - -1804468671 - 272630784 - http://allseeing-i.com/ASIHTTPRequest/tests/ASIWebPageRequest/index.html - - - YES - - 6 - System - textBackgroundColor - - - - 6 - System - textColor - - - - - - - 268 - {{15, 251}, {360, 18}} - - - YES - - -2080244224 - 0 - Embed external resources directly into HTML and CSS - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{499, 251}, {89, 25}} - - - YES - - -2080244224 - 134217728 - Clear Cache - - - -2038152961 - 163 - - - 400 - 75 - - - - {{10, 33}, {605, 419}} - - - Web Page Fetch - - - - - - - 0 - YES - YES - - YES - - - - - - 268 - {{334, 20}, {293, 17}} - - - YES - - 68288064 - 71304192 - - - - - - - - - - 268 - {{171, 18}, {143, 18}} - - - YES - - 67239424 - 0 - Throttle bandwidth - - - 1211912703 - 2 - - - - - 200 - 25 - - - - {644, 514} - - - - {{0, 0}, {1440, 878}} - {10000000000000, 10000000000000} - YES - - - AppDelegate - - - 15 - 2 - {{196, 328}, {279, 182}} - 1677721600 - Window - NSWindow - - - - - 256 - - YES - - - 268 - {{17, 152}, {38, 17}} - - YES - - 67239488 - 272630784 - Host: - - - - - - - - - 268 - {{17, 120}, {47, 17}} - - YES - - 67239488 - 272630784 - Realm: - - - - - - - - - 268 - {{97, 152}, {165, 17}} - - YES - - 67239488 - 272630784 - host here - - - - - - - - - 268 - {{97, 120}, {165, 17}} - - YES - - 67239488 - 272630784 - realm here - - - - - - - - - 268 - {{17, 86}, {71, 17}} - - YES - - 67239488 - 272630784 - Username: - - - - - - - - - 268 - {{17, 53}, {71, 17}} - - YES - - 67239488 - 272630784 - Password: - - - - - - - - - 268 - {{100, 84}, {159, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 268 - {{100, 50}, {159, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 268 - {{14, 5}, {96, 32}} - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{169, 5}, {96, 32}} - - 1 - YES - - 67239424 - 134217728 - OK - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - {279, 182} - - {{0, 0}, {1440, 878}} - {10000000000000, 10000000000000} - YES - - - - - YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - print: - - - - 86 - - - - runPageLayout: - - - - 87 - - - - clearRecentDocuments: - - - - 127 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - performClose: - - - - 193 - - - - toggleContinuousSpellChecking: - - - - 222 - - - - undo: - - - - 223 - - - - copy: - - - - 224 - - - - checkSpelling: - - - - 225 - - - - paste: - - - - 226 - - - - stopSpeaking: - - - - 227 - - - - cut: - - - - 228 - - - - showGuessPanel: - - - - 230 - - - - redo: - - - - 231 - - - - selectAll: - - - - 232 - - - - startSpeaking: - - - - 233 - - - - delete: - - - - 235 - - - - performZoom: - - - - 240 - - - - performFindPanelAction: - - - - 241 - - - - centerSelectionInVisibleArea: - - - - 245 - - - - toggleGrammarChecking: - - - - 347 - - - - toggleSmartInsertDelete: - - - - 355 - - - - toggleAutomaticQuoteSubstitution: - - - - 356 - - - - toggleAutomaticLinkDetection: - - - - 357 - - - - showHelp: - - - - 360 - - - - orderFrontColorPanel: - - - - 361 - - - - saveDocument: - - - - 362 - - - - saveDocumentAs: - - - - 363 - - - - revertDocumentToSaved: - - - - 364 - - - - runToolbarCustomizationPalette: - - - - 365 - - - - toggleToolbarShown: - - - - 366 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - terminate: - - - - 369 - - - - unhideAllApplications: - - - - 370 - - - - newDocument: - - - - 373 - - - - openDocument: - - - - 374 - - - - progressIndicator - - - - 385 - - - - loginWindow - - - - 414 - - - - window - - - - 415 - - - - host - - - - 416 - - - - realm - - - - 417 - - - - username - - - - 418 - - - - password - - - - 419 - - - - simpleURLFetch: - - - - 473 - - - - URLFetchWithProgress: - - - - 474 - - - - fetchThreeImages: - - - - 475 - - - - imageView1 - - - - 476 - - - - imageView2 - - - - 477 - - - - imageView3 - - - - 478 - - - - fileLocation - - - - 481 - - - - htmlSource - - - - 486 - - - - topSecretInfo - - - - 497 - - - - keychainCheckbox - - - - 498 - - - - fetchTopSecretInformation: - - - - 499 - - - - dismissAuthSheet: - - - - 500 - - - - dismissAuthSheet: - - - - 501 - - - - postWithProgress: - - - - 506 - - - - showAccurateProgress - - - - 515 - - - - resumeButton - - - - 522 - - - - startButton - - - - 523 - - - - resumeURLFetchWithProgress: - - - - 524 - - - - imageProgress1 - - - - 528 - - - - imageProgress2 - - - - 529 - - - - imageProgress3 - - - - 530 - - - - bandwidthUsed - - - - 537 - - - - throttleBandwidth: - - - - 542 - - - - postStatus - - - - 545 - - - - tableView - - - - 557 - - - - dataSource - - - - 558 - - - - delegate - - - - 559 - - - - delegate - - - - 560 - - - - tableLoadStatus - - - - 564 - - - - clearCache: - - - - 570 - - - - reloadTableData: - - - - 571 - - - - fetchWebPage: - - - - 589 - - - - webView - - - - 590 - - - - webPageSource - - - - 595 - - - - urlField - - - - 598 - - - - policyDelegate - - - - 600 - - - - dataURICheckbox - - - - 605 - - - - clearCache: - - - - 609 - - - - clearCache: - - - - 612 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - - - - - MainMenu - - - 19 - - - YES - - - - - - 56 - - - YES - - - - - - 103 - - - YES - - - - 1 - - - 217 - - - YES - - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - - - - - - - - - 75 - - - 3 - - - 80 - - - 8 - - - 78 - - - 6 - - - 72 - - - - - 82 - - - 9 - - - 124 - - - YES - - - - - - 77 - - - 5 - - - 73 - - - 1 - - - 79 - - - 7 - - - 112 - - - 10 - - - 74 - - - 2 - - - 125 - - - YES - - - - - - 126 - - - - - 205 - - - YES - - - - - - - - - - - - - - - - - - 202 - - - - - 198 - - - - - 207 - - - - - 214 - - - - - 199 - - - - - 203 - - - - - 197 - - - - - 206 - - - - - 215 - - - - - 218 - - - YES - - - - - - 216 - - - YES - - - - - - 200 - - - YES - - - - - - - - - 219 - - - - - 201 - - - - - 204 - - - - - 220 - - - YES - - - - - - - - - - 213 - - - - - 210 - - - - - 221 - - - - - 208 - - - - - 209 - - - - - 106 - - - YES - - - - 2 - - - 111 - - - - - 57 - - - YES - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - 1111 - - - 144 - - - - - 129 - - - 121 - - - 143 - - - - - 236 - - - - - 131 - - - YES - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 24 - - - YES - - - - - - - - - 92 - - - - - 5 - - - - - 239 - - - - - 23 - - - - - 295 - - - YES - - - - - - 296 - - - YES - - - - - - - 297 - - - - - 298 - - - - - 299 - - - YES - - - - - - 300 - - - YES - - - - - - - 344 - - - - - 345 - - - - - 211 - - - YES - - - - - - 212 - - - YES - - - - - - - 195 - - - - - 196 - - - - - 346 - - - - - 348 - - - YES - - - - - - 349 - - - YES - - - - - - - - 350 - - - - - 351 - - - - - 354 - - - - - 371 - - - YES - - - - - - 372 - - - YES - - - - - - - - - 381 - - - - - 384 - - - - - 390 - - - YES - - - - - - 391 - - - YES - - - - - - - - - - - - - - - 392 - - - YES - - - - - - 393 - - - - - 394 - - - YES - - - - - - 395 - - - - - 398 - - - YES - - - - - - 399 - - - - - 400 - - - YES - - - - - - 401 - - - - - 402 - - - YES - - - - - - 403 - - - - - 404 - - - YES - - - - - - 405 - - - - - 406 - - - YES - - - - - - 407 - - - - - 408 - - - YES - - - - - - 409 - - - - - 410 - - - YES - - - - - - 411 - - - - - 412 - - - YES - - - - - - 413 - - - - - 434 - - - YES - - - - - - - - - - - - 436 - - - YES - - - - - - 437 - - - YES - - - - - - - - - 439 - - - YES - - - - - - 440 - - - YES - - - - - - - - - - - - - - - - - - 441 - - - YES - - - - - - 442 - - - YES - - - - - - - - - - 443 - - - YES - - - - - - 444 - - - YES - - - - - - - - 451 - - - YES - - - - - - 452 - - - YES - - - - - - 453 - - - YES - - - - - - 454 - - - - - 455 - - - - - 456 - - - - - 459 - - - YES - - - - - - 460 - - - - - 461 - - - YES - - - - - - 462 - - - - - 467 - - - YES - - - - - - 468 - - - - - 469 - - - YES - - - - - - 470 - - - - - 479 - - - YES - - - - - - 480 - - - - - 435 - - - YES - - - - - - 438 - - - YES - - - - - - - - 471 - - - YES - - - - - - 472 - - - - - 457 - - - YES - - - - - - 458 - - - - - 482 - - - YES - - - - - - - - 483 - - - - - 484 - - - - - 485 - - - - - 487 - - - YES - - - - - - 488 - - - YES - - - - - - 489 - - - - - 490 - - - - - 491 - - - YES - - - - - - 492 - - - - - 493 - - - YES - - - - - - 494 - - - - - 495 - - - YES - - - - - - 496 - - - - - 502 - - - YES - - - - - - 503 - - - - - 504 - - - YES - - - - - - 505 - - - - - 513 - - - YES - - - - - - 514 - - - - - 520 - - - YES - - - - - - 521 - - - - - 525 - - - - - 526 - - - - - 527 - - - - - 535 - - - YES - - - - - - 536 - - - - - 540 - - - YES - - - - - - 541 - - - - - 543 - - - YES - - - - - - 544 - - - - - 546 - - - YES - - - - - - 547 - - - YES - - - - - - - - - - 548 - - - YES - - - - - - - - 549 - - - - - 550 - - - - - 551 - - - YES - - - - - - - 553 - - - YES - - - - - - 554 - - - YES - - - - - - 555 - - - - - 561 - - - - - 562 - - - YES - - - - - - 563 - - - - - 566 - - - YES - - - - - - 567 - - - - - 568 - - - YES - - - - - - 569 - - - - - 572 - - - YES - - - - - - 573 - - - - - 574 - - - YES - - - - - - 575 - - - YES - - - - - - - - - - - - - 576 - - - YES - - - - - - 577 - - - - - 578 - - - YES - - - - - - 579 - - - - - 580 - - - YES - - - - - - 581 - - - - - 582 - - - - - 583 - - - YES - - - - - - 584 - - - - - 585 - - - YES - - - - - - 586 - - - - - 587 - - - YES - - - - - - 588 - - - - - 591 - - - YES - - - - - - - - 592 - - - - - 593 - - - - - 594 - - - - - 596 - - - YES - - - - - - 597 - - - - - 603 - - - YES - - - - - - 604 - - - - - 606 - - - YES - - - - - - 607 - - - - - 610 - - - YES - - - - - - 611 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 103.IBPluginDependency - 106.IBPluginDependency - 111.IBPluginDependency - 112.IBPluginDependency - 124.IBPluginDependency - 125.IBPluginDependency - 126.IBPluginDependency - 129.IBPluginDependency - 130.IBPluginDependency - 131.IBPluginDependency - 134.IBPluginDependency - 136.IBPluginDependency - 143.IBPluginDependency - 144.IBPluginDependency - 145.IBPluginDependency - 149.IBPluginDependency - 150.IBPluginDependency - 19.IBPluginDependency - 195.IBPluginDependency - 196.IBPluginDependency - 197.IBPluginDependency - 198.IBPluginDependency - 199.IBPluginDependency - 200.IBPluginDependency - 201.IBPluginDependency - 202.IBPluginDependency - 203.IBPluginDependency - 204.IBPluginDependency - 205.IBPluginDependency - 206.IBPluginDependency - 207.IBPluginDependency - 208.IBPluginDependency - 209.IBPluginDependency - 210.IBPluginDependency - 211.IBPluginDependency - 212.IBPluginDependency - 213.IBPluginDependency - 214.IBPluginDependency - 215.IBPluginDependency - 216.IBPluginDependency - 217.IBPluginDependency - 218.IBPluginDependency - 219.IBPluginDependency - 220.IBPluginDependency - 221.IBPluginDependency - 23.IBPluginDependency - 236.IBPluginDependency - 239.IBPluginDependency - 24.IBPluginDependency - 29.IBPluginDependency - 295.IBPluginDependency - 296.IBPluginDependency - 297.IBPluginDependency - 298.IBPluginDependency - 299.IBPluginDependency - 300.IBPluginDependency - 344.IBPluginDependency - 345.IBPluginDependency - 346.IBPluginDependency - 348.IBPluginDependency - 349.IBPluginDependency - 350.IBPluginDependency - 351.IBPluginDependency - 354.IBPluginDependency - 371.IBPluginDependency - 371.IBWindowTemplateEditedContentRect - 371.NSWindowTemplate.visibleAtLaunch - 372.IBPluginDependency - 381.IBPluginDependency - 384.IBPluginDependency - 390.IBPluginDependency - 390.IBWindowTemplateEditedContentRect - 390.NSWindowTemplate.visibleAtLaunch - 391.IBPluginDependency - 392.IBPluginDependency - 393.IBPluginDependency - 394.IBPluginDependency - 395.IBPluginDependency - 398.IBPluginDependency - 399.IBPluginDependency - 400.IBPluginDependency - 401.IBPluginDependency - 402.IBPluginDependency - 403.IBPluginDependency - 404.IBPluginDependency - 405.IBPluginDependency - 406.IBPluginDependency - 407.IBPluginDependency - 408.IBPluginDependency - 409.IBPluginDependency - 410.IBPluginDependency - 411.IBPluginDependency - 412.IBPluginDependency - 413.IBPluginDependency - 434.IBPluginDependency - 435.IBPluginDependency - 436.IBPluginDependency - 437.IBPluginDependency - 438.IBPluginDependency - 439.IBPluginDependency - 440.IBPluginDependency - 441.IBPluginDependency - 442.IBPluginDependency - 443.IBPluginDependency - 444.IBPluginDependency - 451.IBPluginDependency - 452.IBPluginDependency - 453.IBPluginDependency - 454.IBPluginDependency - 455.IBPluginDependency - 456.IBPluginDependency - 457.IBPluginDependency - 458.IBPluginDependency - 459.IBPluginDependency - 460.IBPluginDependency - 461.IBPluginDependency - 462.IBPluginDependency - 467.IBPluginDependency - 468.IBPluginDependency - 469.IBPluginDependency - 470.IBPluginDependency - 471.IBPluginDependency - 472.IBPluginDependency - 479.IBPluginDependency - 480.IBPluginDependency - 482.IBPluginDependency - 483.IBPluginDependency - 484.IBPluginDependency - 485.IBPluginDependency - 487.IBPluginDependency - 488.IBPluginDependency - 489.IBPluginDependency - 490.IBPluginDependency - 491.IBPluginDependency - 492.IBPluginDependency - 493.IBPluginDependency - 494.IBPluginDependency - 495.IBPluginDependency - 496.IBPluginDependency - 5.IBPluginDependency - 502.IBPluginDependency - 503.IBPluginDependency - 504.IBPluginDependency - 505.IBPluginDependency - 513.IBPluginDependency - 514.IBPluginDependency - 520.IBPluginDependency - 521.IBPluginDependency - 525.IBPluginDependency - 526.IBPluginDependency - 527.IBPluginDependency - 535.IBPluginDependency - 536.IBPluginDependency - 540.IBPluginDependency - 541.IBPluginDependency - 543.IBPluginDependency - 544.IBPluginDependency - 546.IBPluginDependency - 547.IBPluginDependency - 548.IBPluginDependency - 549.IBPluginDependency - 550.IBPluginDependency - 551.IBPluginDependency - 553.IBPluginDependency - 554.IBPluginDependency - 555.IBPluginDependency - 56.IBPluginDependency - 561.IBPluginDependency - 562.IBPluginDependency - 563.IBPluginDependency - 566.IBPluginDependency - 567.IBPluginDependency - 568.IBPluginDependency - 569.IBPluginDependency - 57.IBPluginDependency - 572.IBPluginDependency - 573.IBPluginDependency - 574.IBPluginDependency - 575.IBPluginDependency - 576.IBPluginDependency - 577.IBPluginDependency - 578.IBPluginDependency - 579.IBPluginDependency - 58.IBPluginDependency - 580.IBPluginDependency - 581.IBPluginDependency - 582.IBPluginDependency - 583.IBPluginDependency - 584.IBPluginDependency - 585.IBPluginDependency - 586.IBPluginDependency - 587.IBPluginDependency - 588.IBPluginDependency - 591.IBPluginDependency - 592.IBPluginDependency - 593.IBPluginDependency - 594.IBPluginDependency - 596.IBPluginDependency - 597.IBPluginDependency - 603.IBPluginDependency - 604.IBPluginDependency - 606.IBPluginDependency - 607.IBPluginDependency - 610.IBPluginDependency - 611.IBPluginDependency - 72.IBPluginDependency - 73.IBPluginDependency - 74.IBPluginDependency - 75.IBPluginDependency - 77.IBPluginDependency - 78.IBPluginDependency - 79.IBPluginDependency - 80.IBPluginDependency - 81.IBPluginDependency - 82.IBPluginDependency - 83.IBPluginDependency - 92.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{468, 239}, {644, 514}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{329, 629}, {279, 182}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.WebKitIBPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - - - - - YES - - - - - 612 - - - - YES - - AppDelegate - NSObject - - YES - - YES - URLFetchWithProgress: - clearCache: - dismissAuthSheet: - fetchThreeImages: - fetchTopSecretInformation: - fetchWebPage: - postWithProgress: - reloadTableData: - resumeURLFetchWithProgress: - simpleURLFetch: - stopURLFetchWithProgress: - throttleBandwidth: - - - YES - id - id - id - id - id - id - id - id - id - id - id - id - - - - YES - - YES - URLFetchWithProgress: - clearCache: - dismissAuthSheet: - fetchThreeImages: - fetchTopSecretInformation: - fetchWebPage: - postWithProgress: - reloadTableData: - resumeURLFetchWithProgress: - simpleURLFetch: - stopURLFetchWithProgress: - throttleBandwidth: - - - YES - - URLFetchWithProgress: - id - - - clearCache: - id - - - dismissAuthSheet: - id - - - fetchThreeImages: - id - - - fetchTopSecretInformation: - id - - - fetchWebPage: - id - - - postWithProgress: - id - - - reloadTableData: - id - - - resumeURLFetchWithProgress: - id - - - simpleURLFetch: - id - - - stopURLFetchWithProgress: - id - - - throttleBandwidth: - id - - - - - YES - - YES - bandwidthUsed - dataURICheckbox - fileLocation - host - htmlSource - imageProgress1 - imageProgress2 - imageProgress3 - imageView1 - imageView2 - imageView3 - keychainCheckbox - loginWindow - password - postStatus - progressIndicator - realm - resumeButton - showAccurateProgress - startButton - tableLoadStatus - tableView - topSecretInfo - urlField - username - webPageSource - webView - window - - - YES - NSTextField - NSButton - NSTextField - NSTextField - NSTextView - NSProgressIndicator - NSProgressIndicator - NSProgressIndicator - NSImageView - NSImageView - NSImageView - NSButton - NSWindow - NSTextField - NSTextField - NSProgressIndicator - NSTextField - NSButton - NSButton - NSButton - NSTextField - NSTableView - NSTextField - NSTextField - NSTextField - NSTextView - WebView - NSWindow - - - - YES - - YES - bandwidthUsed - dataURICheckbox - fileLocation - host - htmlSource - imageProgress1 - imageProgress2 - imageProgress3 - imageView1 - imageView2 - imageView3 - keychainCheckbox - loginWindow - password - postStatus - progressIndicator - realm - resumeButton - showAccurateProgress - startButton - tableLoadStatus - tableView - topSecretInfo - urlField - username - webPageSource - webView - window - - - YES - - bandwidthUsed - NSTextField - - - dataURICheckbox - NSButton - - - fileLocation - NSTextField - - - host - NSTextField - - - htmlSource - NSTextView - - - imageProgress1 - NSProgressIndicator - - - imageProgress2 - NSProgressIndicator - - - imageProgress3 - NSProgressIndicator - - - imageView1 - NSImageView - - - imageView2 - NSImageView - - - imageView3 - NSImageView - - - keychainCheckbox - NSButton - - - loginWindow - NSWindow - - - password - NSTextField - - - postStatus - NSTextField - - - progressIndicator - NSProgressIndicator - - - realm - NSTextField - - - resumeButton - NSButton - - - showAccurateProgress - NSButton - - - startButton - NSButton - - - tableLoadStatus - NSTextField - - - tableView - NSTableView - - - topSecretInfo - NSTextField - - - urlField - NSTextField - - - username - NSTextField - - - webPageSource - NSTextView - - - webView - WebView - - - window - NSWindow - - - - - IBProjectSource - ./Classes/AppDelegate.h - - - - BWSplitView - NSSplitView - - toggleCollapse: - id - - - toggleCollapse: - - toggleCollapse: - id - - - - IBProjectSource - ./Classes/BWSplitView.h - - - - GHTestViewController - NSViewController - - YES - - YES - copy: - openExceptionFilename: - rerunTest: - runTests: - toggleDetails: - updateMode: - updateSearchFilter: - updateTextSegment: - - - YES - id - id - id - id - id - id - id - id - - - - YES - - YES - copy: - openExceptionFilename: - rerunTest: - runTests: - toggleDetails: - updateMode: - updateSearchFilter: - updateTextSegment: - - - YES - - copy: - id - - - openExceptionFilename: - id - - - rerunTest: - id - - - runTests: - id - - - toggleDetails: - id - - - updateMode: - id - - - updateSearchFilter: - id - - - updateTextSegment: - id - - - - - YES - - YES - _detailsView - _outlineView - _searchField - _segmentedControl - _splitView - _statusView - _textSegmentedControl - _textView - - - YES - NSView - NSOutlineView - NSSearchField - NSSegmentedControl - BWSplitView - NSView - NSSegmentedControl - NSTextView - - - - YES - - YES - _detailsView - _outlineView - _searchField - _segmentedControl - _splitView - _statusView - _textSegmentedControl - _textView - - - YES - - _detailsView - NSView - - - _outlineView - NSOutlineView - - - _searchField - NSSearchField - - - _segmentedControl - NSSegmentedControl - - - _splitView - BWSplitView - - - _statusView - NSView - - - _textSegmentedControl - NSSegmentedControl - - - _textView - NSTextView - - - - - IBProjectSource - ./Classes/GHTestViewController.h - - - - GHTestWindowController - NSWindowController - - YES - - YES - copy: - runTests: - - - YES - id - id - - - - YES - - YES - copy: - runTests: - - - YES - - copy: - id - - - runTests: - id - - - - - viewController - GHTestViewController - - - viewController - - viewController - GHTestViewController - - - - IBProjectSource - ./Classes/GHTestWindowController.h - - - - NSDocument - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - id - id - id - id - id - id - - - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - - IBProjectSource - ./Classes/NSDocument.h - - - - WebView - - reloadFromOrigin: - id - - - reloadFromOrigin: - - reloadFromOrigin: - id - - - - IBProjectSource - ./Classes/WebView.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - NSSwitch - - - YES - {9, 8} - {7, 2} - {15, 15} - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Demonstrates fetching a web page synchronously, the HTML source will appear in the box below when the download is complete. Because this synchronous download is running in the main thread, the interface will lock until the download is complete. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Demonstrates fetching a large file directly to disk, updating the progress bar below to show how much has been downloaded. + +If the request is stopped part way through, use the resume button to pick up where we left off. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Demonstrates a fetching 3 items at once, using an ASINetworkQueue to track progress. Each request has its downloadProgressDelegate set to the progress indicator under the image view. The queue manages the overall progress displayed at the bottom of the window. + + + + + + + + + + + When accurate progress is turned off, each request only updates progress when it completes. This means that each request is represented by the same amount of progress in the progress indicator. + +With accurate progress turned on, the queue will first perform a HEAD request for each image to obtain its size. Requests then update the progress as data is received. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Demonstrates fetching content from an area that requires HTTP authentication. You will be prompted for a username and password, enter 'topsecret' for both. + + + + + + + + + + + + If you turn on keychain support, successful authentication will result in the username and password you provided being stored in your keychain. The application will use these details rather than prompt you the next time. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The table view below is populated by downloading an XML file, then downloading the images from the URLs in the XML. The requests are configured to store their responses in the global ASIDownloadCache, and will re-use previously downloaded data if it exists rather than fetching it again. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Demonstrates fetching a webpage with a single ASIWebPageRequest that downloads most external resources (images, stylesheets etc). These can be stored in a cache, or embeded directly in the HTML source. Once downloaded, a complete page may be cached indefinitely. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate index 79e8f394e91939b77ee685da9a295100ca52b27a..4ca54f353ca4e3d68e9184d4910ac23a07cc2d77 100644 GIT binary patch literal 45521 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 From 5e6834c79ef21b08effaf7c81504447d83314c5a Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 22:24:34 +0800 Subject: [PATCH 07/13] fixed warning of cover number. --- .../UserInterfaceState.xcuserstate | Bin 45521 -> 47732 bytes iPhone Sample/InfoCell.m | 8 ++++---- iPhone Sample/QueueViewController.m | 8 ++++---- iPhone Sample/SynchronousViewController.m | 4 ++-- iPhone Sample/WebPageViewController.m | 8 ++++---- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate index 4ca54f353ca4e3d68e9184d4910ac23a07cc2d77..9bfc651ae35e40b44fd7d09820672f4396ec98f8 100644 GIT binary patch delta 23120 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

v9LEe^g%0y5RF~Nk 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 delta 20459 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 szo>>3E~Z)dW5V6aZy)6H3@|zWAXA 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 J@N@o#{|6!9o4Wu2 diff --git a/iPhone Sample/InfoCell.m b/iPhone Sample/InfoCell.m index 31f95f9d..62be96fc 100644 --- a/iPhone Sample/InfoCell.m +++ b/iPhone Sample/InfoCell.m @@ -33,8 +33,8 @@ + (id)cell - (void)layoutSubviews { [super layoutSubviews]; - int tablePadding = 40; - int tableWidth = [[self superview] frame].size.width; + CGFloat tablePadding = 40; + CGFloat tableWidth = [[self superview] frame].size.width; if (tableWidth > 480) { // iPad tablePadding = 110; [[self textLabel] setFrame:CGRectMake(70,10,tableWidth-tablePadding-70,[[self class] neededHeightForDescription:[[self textLabel] text] withTableWidth:tableWidth])]; @@ -46,8 +46,8 @@ - (void)layoutSubviews + (NSUInteger)neededHeightForDescription:(NSString *)description withTableWidth:(NSUInteger)tableWidth { - int tablePadding = 40; - int offset = 0; + CGFloat tablePadding = 40; + CGFloat offset = 0; int textSize = 13; if (tableWidth > 480) { // iPad tablePadding = 110; diff --git a/iPhone Sample/QueueViewController.m b/iPhone Sample/QueueViewController.m index 27d5f8a5..e746439f 100644 --- a/iPhone Sample/QueueViewController.m +++ b/iPhone Sample/QueueViewController.m @@ -139,8 +139,8 @@ - (UIView *)tableView:(UITableView *)theTableView viewForHeaderInSection:(NSInte - (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - int tablePadding = 40; - int tableWidth = [tableView frame].size.width; + CGFloat tablePadding = 40; + CGFloat tableWidth = [tableView frame].size.width; if (tableWidth > 480) { // iPad tablePadding = 110; } @@ -264,8 +264,8 @@ - (CGFloat)tableView:(UITableView *)theTableView heightForRowAtIndexPath:(NSInde if ([indexPath section] == 0) { return [InfoCell neededHeightForDescription:intro withTableWidth:[tableView frame].size.width]+20; } else if ([indexPath section] == 2) { - int tablePadding = 40; - int tableWidth = [tableView frame].size.width; + CGFloat tablePadding = 40; + CGFloat tableWidth = [tableView frame].size.width; if (tableWidth > 480) { // iPad tablePadding = 110; } diff --git a/iPhone Sample/SynchronousViewController.m b/iPhone Sample/SynchronousViewController.m index 2c5c72ee..b7d2d6a9 100644 --- a/iPhone Sample/SynchronousViewController.m +++ b/iPhone Sample/SynchronousViewController.m @@ -116,7 +116,7 @@ - (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath if (!cell) { cell = [DetailCell cell]; } - NSString *key = [[[request responseHeaders] allKeys] objectAtIndex:[indexPath row]]; + NSString *key = [[[request responseHeaders] allKeys] objectAtIndex:(NSUInteger)[indexPath row]]; [[cell textLabel] setText:key]; [[cell detailTextLabel] setText:[[request responseHeaders] objectForKey:key]]; } @@ -127,7 +127,7 @@ - (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath - (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInteger)section { if (section == 3) { - return [[request responseHeaders] count]; + return (NSInteger)[[request responseHeaders] count]; } else { return 1; } diff --git a/iPhone Sample/WebPageViewController.m b/iPhone Sample/WebPageViewController.m index db982dc7..4b916026 100644 --- a/iPhone Sample/WebPageViewController.m +++ b/iPhone Sample/WebPageViewController.m @@ -118,9 +118,9 @@ - (void)requestFinished:(ASIWebPageRequest *)theRequest - (void)request:(ASIHTTPRequest *)theRequest didReceiveBytes:(long long)newLength { - NSInteger requestNumber = [[self requestsInProgress] indexOfObject:theRequest]; + NSUInteger requestNumber = [[self requestsInProgress] indexOfObject:theRequest]; if (requestNumber != NSNotFound) { - RequestProgressCell *cell = (RequestProgressCell *)[[self tableView] cellForRowAtIndexPath:[NSIndexPath indexPathForRow:requestNumber inSection:2]]; + RequestProgressCell *cell = (RequestProgressCell *)[[self tableView] cellForRowAtIndexPath:[NSIndexPath indexPathForRow:(NSInteger)requestNumber inSection:2]]; if ([theRequest contentLength]+[theRequest partialDownloadSize] > 0) { float progressAmount = (float)(([theRequest totalBytesRead]*1.0)/(([theRequest contentLength]+[theRequest partialDownloadSize])*1.0)); [[cell progressView] setProgress:progressAmount]; @@ -214,7 +214,7 @@ - (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath if (!cell) { cell = [RequestProgressCell cell]; } - ASIHTTPRequest *theRequest = [[self requestsInProgress] objectAtIndex:[indexPath row]]; + ASIHTTPRequest *theRequest = [[self requestsInProgress] objectAtIndex:(NSUInteger)[indexPath row]]; if ([theRequest didUseCachedResponse]) { [[cell textLabel] setText:[NSString stringWithFormat:@"Cached: %@",[[theRequest url] absoluteString]]]; [[cell accessoryView] setHidden:YES]; @@ -285,7 +285,7 @@ - (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInte if (section == 1) { return 2; } else if (section == 2) { - return [requestsInProgress count]; + return (NSInteger)[requestsInProgress count]; } return 1; } From 9b2eca857e948297dbdbbcb5351c1d616fa4deed Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 22:36:05 +0800 Subject: [PATCH 08/13] remove deprecated API --- Classes/ASIHTTPRequest.m | 2 -- .../UserInterfaceState.xcuserstate | Bin 47732 -> 29038 bytes .../WorkspaceSettings.xcsettings | 10 ++++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/WorkspaceSettings.xcsettings diff --git a/Classes/ASIHTTPRequest.m b/Classes/ASIHTTPRequest.m index 5a71622e..66df7956 100644 --- a/Classes/ASIHTTPRequest.m +++ b/Classes/ASIHTTPRequest.m @@ -1215,8 +1215,6 @@ - (void)startRequest // see: http://iphonedevelopment.blogspot.com/2010/05/nsstream-tcp-and-ssl.html NSDictionary *sslProperties = [[NSDictionary alloc] initWithObjectsAndKeys: - [NSNumber numberWithBool:YES], kCFStreamSSLAllowsExpiredCertificates, - [NSNumber numberWithBool:YES], kCFStreamSSLAllowsAnyRoot, [NSNumber numberWithBool:NO], kCFStreamSSLValidatesCertificateChain, kCFNull,kCFStreamSSLPeerName, @"kCFStreamSocketSecurityLevelTLSv1_0SSLv3", kCFStreamSSLLevel, diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate index 9bfc651ae35e40b44fd7d09820672f4396ec98f8..790bd533fb843799f7369c903ef7b6d5d72a2c82 100644 GIT binary patch delta 15233 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 EA0{#1egFUf literal 47732 zcmdRX2|!avxBs2FH_1(Il*qox4gyLNc5tZ%2toxyNkDLm2vJc4O2DPs_D);7?|c1P zt7z?FTWj~d*4o;Av3B40eYLfF`#&=`HzWvFTfg_-|9!72;mmK&oH^T^nanKc>Fn_K zS*?3H#9@x-1WvfR)72Ha06?YuBnp?vi&z-=X!mZ`b;?CwSOjko7xkf4h@g|u$>=O}HaZ7gg04o_psi>dx((fh?nd{chtZ?x3G@tl z7VSl^q4&`H=mYcx`V#$){y=}Czc7ap#yAv*;cy&*BXJat#tAqPr{fGf4(H%poQF&B zWL$?GxE>#a8?Y0*a3gNUEw}?O!Ao%`UWU7HH$D-|nBbG}$@mn!7N3gG#^>O3@rC#j zd?~&RUyg6UTk(zfCVVsAhHt^!@m=^nd_UfUU&MRyOZa8{3Vs#8hF`~T;5YHR_&xj~ z{se!Hzry?QFFfKg&+`&*CCS8-M8Lu&Gay12-V$DR&6wNeE zxu#N6t*OyCG!2?YO|xdUW}c>1)2>;hS)y5{>Ct#K%QdSsYcwZnPSUK^oUS=bbFStB z&BdC_H0v~1X*Os!X|`yt*W9Strnyyfhvsh0eVPX~4{LU5c59y0JfnGD^P=Wu&1;%B zHScKN*LA2dH{e%1V;<+Qw3tJQ0b+7NB1HbNV%jngJ*leKBuaoTKc zj@GKp*A{6@wUf0|wPjknwn{rgTc(b8D&eG1+&eyhS7iv4So!V|~ueM*iQoCAv zf|h7c(VnI~Q+tl~eCUBHx)r+PbjRyt-O0LBb!X_#)}5!jPvbD-n|0UfZqVJNyG3`K z?oQo3y8Cqx>2~TK)jh6zO82bp1>MWK*L9!jKGS`!`$G4fZolqN-Cv?k6h*x_N(>dl z#BecQ94jV>iDIg_OgvWX6_<-E#MR;&Q5K1~Ry1_5_@^H0dA&|A>W%tQ`Z4-YeWX50AE%GkXX>-`+4}MN z3HltpS#Qx#(ofb;(O2t_*3Zz-)Hmx}^d9{}{UZHheV@Kxzg&Nk{$%|r`t$V{=r7c- z*I%vQpubUnlm2G?z54s~_v;_mKcRn8|FZrS{j2)d^dIRz)_B0 zZyVk*d|~*~@Ri|f!>@+l48I%xko1y4lB6gpT8fbprBo?R%9HY?0;y0cl8U8C(qySp znl4pI)l#i=jMN~_libpLsa0AawMp&L5^1T_DfLLpr4`aj>0IeN>3rz|=|bru>0;>; z=~C%3>2m1`X`S>R=}KvfbgguqbiK4)x=*@adO&(mdPv$KJuE#XJuN*WJuAH`y(Yab zy&-)heJp(Ek>)c z#8_&aXsj{T8(qdmV~cT?ab9CuSAS>ci=3V_a1v+aLb%YGbx!kA&noXM_}dpBo6_1k zTfN=^ZWK3K#xg&^nYb~sApa!W+@`dOl7fQ5JbQjlMMb4Gr=Ya7BBv~`qCCf5R8*N) zQc{+mZ!343!mBInGrN12dV5;iJQdw-{mVREeQL*%Tq2iw9T&w#b1_^j7sthOW4Q!b zBWq=yEXsP>AWO3GIxdMz=2Ey+;3J01;8NvL@@Uy4PX(TIaytCoJdgI$(be9)qO!Mj zna6EPh7TOQ?VeswyT5l=>w@y`uD;&x&Q3@K+@_-fSqu85yR;~;qM*FkmQ!fYE6gb< zD=5e*wUw0TlvS1&7Zewll-tX#Zc~iE*XpiHkf*n;*W>A`?QRDKCIo^jtPOVF*wt}t zzo)t#MA5OZ!_(_FB?7svtq*dM;n@xB%+=l9xuCVT+S}CO?O4zWokjZ@fnk&d{VHbl z>JsaOq};-y<0mAo&a)Qh!w-2yxyK*Bhs}LHSGbXj0Xc^3;flEuu9TZNOPTgA5M;CR zPmdS0!`9o|x@rIjCNmiU zE=S0ba+Dk`$H=iaaMdu2Gq@VAmaF3&@b6=|200F9@+|pm`6BsKc^~|HzwD5k=fc43 z?HzsHy|!LYtJ`FPpPh@lSJbsG?^x6dAJ2vlV9YhG3p|}}Qx27bs%$|s+Su38+0nO( zqBtQz>}%@qtWeIy=bLt!dB3;Gu=qLZj{r*zig@lv$}jLMEq zPkn3OVz(*M=Ji5$+S=8pjLKWnx~jY1Zx3#+gUh_0o6og!3%E9}o%3)DxkcP!IbI$s zC&-C%lAJ83$f|;GB@JYUp z>S=RtALw|4r>EEBg@3g6LHZ4rH%4X1KNqt)nIK$XKzdcHPUHxexsj9QaT~dlB7bq9j#^Eg5Cx)!m2R&;>Dc6YV*!c4nO5y7;cPFP`h+J}BV-P66y z)7QI7F}`)w`2HhX_A_Fu`=KacgfYOhj)(Yu6&r+^UXtkFB$_+UxD7bCy1& zk<&M8!L3ql_pa6Ap65E}tS&Cd18167Qe1kx*s{8`v=Dx>f+wY(^J(sxIdx9IQh=*` znw#_z_Z;^;gxD9jJ=}}jUhXCCWv&6NQXN4}cN;T`d4uv(JOxlJ17#ijm_~rEcF#)3 zLbdJS@8o*9LUzjKvcqk%G`E4Bn!z-K=1qY!`@N&HueZOgufNx$XyWT!;U?}4?oIA3 z*)CVhHB=+t<=z9%w{jnFAI=)=tC4X5>NZ`j0_{Gg-_!4*Zg4QVnU|R~iby`?K69Jm zft5kcgMPt&7)E_-NACdlIXCHVXjD$Vk5l1bFana>1qR4W~uNj_jGpm&~(Pq>g~u`+}GEW)9Zn_?(MTE zeW&MHouHhZ9?P&&VlqM;LT*!7MUzYILRE6&?xRVnrkj-^?GK*-@Tqruz=+rnUiPA$0#E+p)rkhPMDwpn7v8LXJIHD zgi+_L?PpvK+Sw))MlFr$F^U9_ilXFMatH+5)vK9#Lf(^`UrO^HE7A4-$w%L_q|7R$}eHJ*hmVQ6WfLZI@Pr9>bl)r){B z@CPz~AXK{0N3V_JrK7cy2Uj?ETJNY%+9ld z#$sx!n@Tbf_}-GclSb6hLp6U2l6Cvc9B6O44uXZMQ)S0 z!VUf?gpNYfAaJ6o@}iB9nL!=~5d!Sn+uiAb@B-eH4qP3e9Zjdim2$^MR3$HA#GuZ8 ziO`7RReGsGjsaAQ>g1(zkL*~0{AB5S87RblSy|Qg^4x!ECtc{{yi_qeEe(hqp z?k2Q|X1gln610@d+^|7zRzK)MJ#^sR^74)7Sb4?42HsBxz8tNPSIVmg2YwtnK8VQ^ z(24RY`8Z$_G)l3g)M*#g2Mz2LbXriG)6p678u@q{9Ydg%npn|PEOpwP9jxtMbS^p% zoe%bR0odO~=wi1iw70vvPf=o;bJf9ox=m4wJY60AUZrR1&pj*ql;1@6D1rBYU&*I| z-JU3)`7*i`T?QRoj;=uKppy&GRos5Gp8Kg83ap*&y`HY7o>us?Z+08S?dqed2WqQ2 z~6@ee2F9UbeepIEC<9?v;l2YVyb+qOq39)sM;0?Xy{sW9lBmVNj_OVWk^6% z;+GmW0wRm=BXm29Bx?gANl+9~;ziJ?(E~8!B;At5^k5j*WsN{+=KZ%|K|9uEO3?OiwhekS5uvg9DIrM_x z5A2c8k(-slzeH94W%P=Cu6)6u>c5WO3R2^@(L3^a^7*o@K6To;=Lc#0hv<_bq@Mxl zg|aPmTGxgk%CFE5T;>+^HTnj9i@rnOqkZzl@+I=6@@4Yn@)cXqk7z&o3H^+ILBGoD zBBD@+;JElY*j{e@$rir%7(p*pWz9EnCnHi_iEGe$Px29H^RH`oY2BkIc8K(LU6n#^5+EbR&+H2R7n(d6Vk% zlmKb-29hS>6i`N-EN|Y3Q{`*qW@l|{TfGXDiL?Dc442~y`9}FB`DS^We2ctY zzV%vI#%JIv`0r>)2vT8s(&gLWzuO@#fYO#?oKB`>{#l{X+wVLaU7f3x3eqrCRZw1P zg>@fL(DFpkbSh=CVH%awvY*GR0LRj~^L4+B)-fRdcPVN7@BnIN!rFiyrv(7`$~KgL z8em|B18FwxhdB$}gd7`WuYaCq;Z~~Kv+*1}7th0PJYT+3zDvGazDK@SzHbYcirZkp zo{AUZMIfsCAyb(uKOsL!g*KLU3cXP5YKS;cfan8_WKpdPbSw&f&n(l`+X@R<&|bDm z26m$=%BK4T?W0!`Jz8c{F&p~3x&W`Nv%766tMdeDFr(~iZChI2y^PjA=n9#ssj6r_ zcm*BVvA7p|aUbr-%jE~;2jz$49rDBS&MkN)Ud7a64P=Oq$h(+QJPv=t$Y><6uk^I_ z)8d1@Yk5a+cNblS*xDh?dcDfb%<#a3)5MgGamcLa!RJ-2%RSYQMRl}xcCJ!?Pm?Rw zU=bCSFL3*+2e~6PDz9%GsZD~)fNIT(TzzE*kafCBVC#g0rF|8ZZWpXF>O3pzTl>A9 zcGmek>&oJVtsYNFYf*bin^jSj)9_iFa56pvpDAyaAC(`IcLQ0GwZv+*=6Z6AtycPD zF8oA)Y_~!ySfu0g@cFPv_pKqEp1w`+$pzdbSZ%-$3h+ft2S;!KCgD*1@)dX^HT-q> zKln;~6<&|8#v9~k*Wv*#m6|-4f%5Tn@?OwhYVzsu=gV}aBUG^| z)mCrWDq8S>USb?rc^ z>Al_kJ!PvHaF|C882;)t;HC^|5nv1|PpanMif{M3&O79n23_af_?{7cZ+^j`?|lI8 zh9W6`5I=->;D_-}{0QEKAH|Q!ugb5Ri-n> z@?5q=^!Y`<4fvY+;V3D5Mx`G(FM)A1G_ZR%EzlrhNTkZm%`f(q_wif!td00>`2!g; z&P5Oc|7BeR5R!Z)4SUxjIB2oh+}YFHy~IKbtF@l4e)GzX1&SHHkI&j5?^gc(5i=>} z-=7A2{ssHDsu^G7Z`A}6e`=olu5ttd`Kk;Ak z7xI@hFQBo`Zy(BH=(uTt$s#ZCy1>S~$m`{=)Ou`ovem3Ff5WWL! zlVv~QWe^#b_H=i2^?BJ285H3mqm1?KGAJ{}oQxL&2h@zfBBJ~ON!fWT^DKt4eRuC1 zWsA+(w%9}cXt?qtgmNg9Kz6_?v2K&Krq$a=19ztfx*FVMP@0uN-Kw26g#9Eau|b&y zGFCP9Rr&)K#s=}nb|sx1$9eoLMk^++u&=iEac}GCse~e>x4NsgqpQO|7GOB&XUI)x zMMj;KD!vv9O?)+fG(Ur{AxI!dLy(pr-DbXyckuQ6F$9SO840!%UZj4{8npfh=EXdi z40w7~2HmD&r3w2pzaC5bIjg|K;C)(?dQPwxS}RF|m| zXy#{u1L0c;(r*McLK4(!2Fs58d{~puB**~aYGuw!S|!hEr+arf%fZULQ1qoqMtezK zUVEX(s$#bB?Li4WzldK#O?WZiLC`3ILI(Jyd?!I;2+j@e?pUR}(QcD#;Snh+gYz{r zwwcEb9NBWEE0fza^T>3iID^36l%oRtD*gnjWXJKV`8E9U1cee5Mo>6G5u5oFd6_5t zNd!d_6h%-n!B(ndIYD}$C|P~42kf!m>r)`*L$>OG3iUAbW@XE$2KE!pUb=rvrwmrA z!;q>uld7_6IUQ_rI8NLO1XC_Z0qGjSR{(=ZJmT+E?KqP^n`+!y1VwM;&mky=4tUJ) z)ldEcsD$tr@)r>lOHiUejPaN9S3pGJFXJyKD2|}`0e&6-AA-gblyC?&P*{Tv3MZ)O zI+*#TPV)rEp#lDy;4X10f318CK}oc%az+)4cr0G?TcLQx-$+o39I}_+2D>P*m%`t| zZ|862Z)@?goCek*1c4tzB7F~)}$yI82^Z~8lWm8PrV|QN2ydEBWS$8XwE;uKMzYf z{z?8R{%QUh{#pJxf+i4@Ly(yu3qe+ba<_2%_&u;>ZQx&m!g?J+d9Y@65R?ypf#w9V z25k3udiz$<&De?#Q2N$Y$|^KQ)$k;yv`Icfwh5g!;@E;9QUl1;e%SIfn984-2KTfo zsT^YPB3hZHfi3_m*nlXzinQJt%>VfJkztmK6}&>9&@U_(RtPJFRl;$?YGI9Vyl{eW zq96-II7v8JI7L`1oGP3qoGzRpoGF|ooGqLqoGY9soG)A;Tqs;5Tr6B7Tq;~9TrON8 ztP}ntTq#^7tQW2pHV7Mq0b!G{S-3{nB3vt6CtNSwAZ!(G6mAl37Pbku2-}5Qh1-PN zg*${hg}a2ig?og1h5Lm2g$INOg@=S4!o$K&;Sph%@Tl;Zuv>UsctUtmcuII$ct&_u zcusg;ctO}ByeRAyUJ_mwUJ+guUK3sy-Voj-sDPj%f{F<$A*hs~i3Cj|Xfi=l2s(MT7tlKz;5aZf~2N_ASXdCf*J{G zA_!u9GeM9A%pwS~fH?%sC1@T&Zi40$)Jo6-g4zgbC&)w4LV^|%w3r|W=Sv7$N)QC| zWdwmo>n5m&pkoQ@CCE!qA3^;DEhlINK`RMbMbL2sttMyj}D=pbZ3VBxr!3O$2Qw=o*5y5Ogg;*Aa9*K{pVzm7p65x{08h z3ED=`Ed*^R=vIPmBj|R5?jYz+g6<;dZi4P1=w5>EBj|pD9w6vJf*vAh2SE=Lw3DDm z2--!^qXa!h&~AbrC+G=+o+Rigf}SSm8G@cA=sAL(C+G!&_7Lc=y!ttAm~qm{vwzo7!eF7 z$a#VVf;9wd3DyxT609fKK(ItG@bYTV9>8BSKI5L5sMdEt+gK)fH}AAO|pmKpBISxaE(wYt}ehY6E$I2_Bx# zQFe479n3$_r4NHwWow|UHrUG@we?PSMRkKZK2Q~Cli+LP=wT<))~qROtgfkWH`yAh zZFMenXc~?Y#|68FrL3@*HBNU|*HMAl=oGt^f2qy1teItK zGka~By#i{t?s7++%UPmI4Gj)_^%U8XL;(ZWx6f7;!X!C>eA9 z8H!*4Nkajc^7%wSIad3NX5{IJo=8b@!f{SW_t&hU(s4Vhr`Neb*43^WdoBF!?;?)1 zNglBctu#R^|CkaO{e%(e8|=POH8j#u)!STEDtpPSY1)vc4p)`EflZ;pWMz$Qx}Uo= z)+BXE6PT!`YASI$`HC9&=YJe)5rrx|J)PaF=*|HcpsS&}J_t9PQN;&Q*=k(&hB_+N z=?#v?dX?*(gOWOCf;Ot8Rz?~(0%~o5mgY0c%n>N-?G3fnPC7tP3#uGy2Suz|a!@ny z0cF*7pwQJ7pnlc0w&{cPrHno)h`z#JU*l+@I^eExC@QSNPiEv9BazoToGy@dxgA)m zo31vR${NK6H3D09Q3VeYWZ6LogT!cOgbBkUQX#tORI1%qG2-wb;tH7XL8q^o!AN3) zNK_63^|OxAr3cZ~+R7cyW_N(lT(*YkcE8CTGfW$wAAv@d)pacNL0GAF`rEjM;m0|n zx*p7*iA^2aOhz|0h@WyteT%!k%H{-L+qXS9ZWuUmKa8DbGZg2J_VURGDIcgN&r&6EEsKW-) zftNamyT00wcMhY79HgM5a)T>(fqPV8&Syj!gG5w@?wQrDDzGOIfUTjz4O83zsnVbb zFJg@%1{;A_sB$~pu9kW~@TH6OpxsbNSw}(z2062F}u8lC1ybk3^4itb@t~{wKgZryc;r5d$}v94J^W- zj{vEH`Y@RR+kPFpju9mcj%*%ac9~ZSgJE*`e8ZCl6}7q13?DN zXnoK;KEjC8Q9T^nXr%`rU||MHY>QjT)2i#h=|E@+N;e*3ZOnmf${Xx-N@>o|Vj9T0 zoMrw10BMM=!JjBT!5YT~Hf8}4l0qdSsKSO7Hw+^wkkH<2FK=|&%D^G}vul<7IYvHq z1ag?D%4#^9#}Zg{4nVa8CO4^;!84U)_tS9AhY_Mxf(ghBEjBvd>CjMtZv!SW$UJE0N* zjZ*_h5YV{MRo@7P&K7QJcTlnzxx1i_1~VJKeL$Tm!9A0$U9ZL2Vy6qfpj?28n?U)NFB>Gzn@yKpj0CbztEAi;<-Tk zCIe|(z-Zjg#xkh>u&^_juV}{(3*{>=93E5>gBm&^Yzht{t5nu147rqJiEGxl?4XWS zuzvK}n>K?{Hi{oq$qWCE+}T(; z7|gUKBePF^o3jN{xLOr^5+hC?nH3iH{OOeTC`LaO&SrFal4@$2YLkl0)})*yR!W-g zfpe_v_y|;!YG9E8qaIrMtFbrP{erL^9$Irr5yVKEJF(Sj1C+FA?L!?)1w$+Rd){c} zl6oXaVWB*03#d|Pr!$Ochlb&g^lX?A?5T9wl0;?cXa-ksXmAxR;H|;6vgJy-3Q@}- z$_@>}&k?hQatEj_)OmukHEsRj46(Y-XI>4okQ$h$tNb|+hd;U=Y+y+{t;bD=%mU{MvxM3{5-`m%{ z4E*G>9ykWon^f7^x(HGhUsXFWBiF7NNje9GsIO^+@=l{O2_kdXnhVU7)%~|W7VQ+yY zQH9$6WY+$`Sq^Sr?xsPfk$OC}NTULr$^a((4Fl!iiJ)_5OP$N6E)KP4u%d#7JyHH5Zb`C)(_^S7qZp|#*krK zgF^;mg;-YasHVk#R^@7OmqVf6Z#0)25+G!f-~qs3AfNG-XDWOP2e%WnBOv*|oB}7_fpNoK>(74biXBUxn3P%NkDk8xbmT%2&ZuH#wE1Lcny~z_1Q<&?*x&;~PI- z&GO2dn@6_1n;6u{raKIjqH(I}-ogMzwjmWDARQ>LuZJ~bxgCOGKz?`|0~&d9MgVGn zijT_6oeW~uh%yEUWjh00yAm(JY9PO_VjkQ(eJX+ z(x|UB?7!NaP;LlPx2G7yfqFYUgl|2<23G5w?u6pJ%FDA1=s;r}0z~y6TpJ{PbmtY; zNC#Hmv@bBIV-AqfVL*W{yWHSKDyaVY9I{_+_cHtgr*vj(FFj>n=HN$T`vMuFojudmOfzMHHQJN7zdl63P(9xu_DxYK-+8UVPmw+ zQK9YzXg@n_PN~{6J}cpr3`;s~<#dk<4h_*HaFEk48T5hncnEU`$x4M|rfQGhFd+Ls zlV%xg;Zfd()SSL&nAQIbQyuCsxIZ%7f26QQ1#Xwaou3E$HSFls5RQNTH&UR9%P`#j z#xN`XnG|TUdZ1wcWRQnrR{{E2T}zK|!SLC!r~|-th=Dr~gI~Y4vJ)RreVPTTN@#V_ zOr5_lhI?T7W@M)mpni~3D97;{)q1Ti^52SpE$Tq$ltnsJ&ix{YVbF);$^9bmnFpM9 zY4DFcp1~cCJ_L;13AGF`JV&DwPOABA@IdoRWL>l#rphTX9K8NJpV$8*I%^y*Sj)>Rgqo zQf4yjf8+of;eY`gRb!3|&Nagt!LL8#8R~%xgppOKFtiV z@-So&ph8gVv%~QlRvr#G_^ZqPH*B)JSDitX%>st_j|``=jv?0A%KV!mx?%=*I6*K# zjtq_-x~qjKqL$xu6aO`baFn>wZ`xD-wFub}b2zr4if|f3Jg`6&pgRHe2Bzh(poG9o z7l2?%bXS4y3;9*2{O?E10R5t)EA*!723I3gWCrn6{wfcVKR+CtvW3G{eneGe{QOlj zz=NuGFn>yntgchOP~fPngp(+aN+`~kH>g_{x*7(0;6m{rQiRftwRv!V-OrzcK^-(6 z4zo5_)(dQ-nVu0VhkCFL){0P&RR!6=a1WY~j)d#3Xrz&V9xDRnu5wh+or!Yw)VQvZ zAs;js8wpuqRdvudmxJ!YL5=`N4_t%W<+|p7*+W3~L6PAw0MwZwhpP5VefD8W$FFWm zl}U+dP=RJ&dT=?)9qLZ2ZXQE!KA0;Fl8zs_wz0-lT@NvGu$sV>7R`z57)>{pf3omPlJgC$7a8rH)x{+l0^uOGwK zVRLoa;67qblKuM}fftyu$gbn0j5=@qt34+s2hH7!t>P$hC1 zgK``K)UYsg=Y#U5;xe`Le`!#+j-gNaSLiCIS23)L1F_iAB#?u0GnMKR)qz5AvsJL~ zztMkysSF+<(`{goWrqz}Yp-=Qv_P1tgY+lhM2c<`11vaf!0F}ws?e5^cv6N3lk9hF zIe!1|A1sRjHWy?cYL#4fJp;5K$kU+%);Y^7nK7z!aU;VVMr#foQ%PvlbT6o2vyGuo z|2G^%dPK9AfGtAZtqis5-=O-Ibl`UfS0i`)d-2lX$%W^3twKM2hPxYH`x+fX@znj}YIW@pB0#!KAFzka_``^!PAU34y<@M^eknVYgUU$R< z(*)mWfIJcI!qn~2z39Kb1#W?%H+c=cG-;D=ukIy!LA39dml4Q@f2F{8Pmk^u-K#-Y zXzAY2y~kx(VL`j{x!Pybsy+H)P1D;nBW3}3kjY?@MMB3 z=p8x3-T4HYxa>M9S8MMgkMC(6-)&OL^91TmWxhLrlq+ijso`P--5)#B0O46#P673)NYST7zUHi%BqB{qsp;!LqwY!PRPv&A{$TydW07Uzqt z;sUWvY!^M^LUEC}SnLp&h)W4Ro8XHHzKq~?1Ybq)MuImJd@aE@5PTECw-5|-ekZ~A z68r$cI|zP+;N1j2MeuV3?;-eQf?p^2ZGzt;_#=WpCHPB%zaPS*e!E-y4%!#WNw-BT{CTgbLdqr_~N|scnVx=xUgf9d2zr6cVfTNb+y|x|A=>8 z0ap%pcDJ^dx5BlM!QCFGbUVXsYCH1X!W&H$o;Kh8(A~YkJ)fxbTvlb+(*3k zI#1sUco&Y{Y8pJ|bCq75M_ka(e5%*Z{IdSGrJlavp#EJ)$&S(EO zoCk9n!*_eF((T;;Mz_H}D`<{yRJwJ$O+*znt!MfS&+B_0thJ}d;=9}4t3GAr>9y3u zTTBaKBE4{-a~oXiVTNl5*#`kMaAB1C>s+fD{@>fa)Y9+mwRCi~b;6@Ov?;sFI@r** zD}1#caYGA^9>Ja7sdU=rHhEQH{JV#}0z%eI&w_gR4uDVJsj&xt63oec3MX*u@R1KC zkh3nL=03b0?ofJObj0*<=;LNIS1$K-b_SdLqe{0OZqwbW=>LfxDxEnymi2=sf=O>q0YC0Cc6Bw&3>=I@g2E3Na?tXallHUDgUPvE|rJq`=-~|Hu=$r4U z)8P4gQW?(D|Jf(v0^{Rz3J1&n8wM1Z5(IgZy-KIuZqoz*-_7FS6LG;)`I<7OW8J1> z)iM1$r!dqYoU6Lp7Q?F?-Tmw#H|l4VM~8zgy;kY?eIMXeFni75PYEwHOh-?g30^{F<2&u-eNl5(7Zv5x7j{buOO9_@U0i5|AFO`d4t>{%xZV05g~I`YHwALo z9X07%MQ-`I1%9X%`ZXg$9j`w@fr7F*JaovEiLtoyt=CRugDoj3@*}O)pE)AZS^BdT zr0WR2J`kzr?$Mb(^~lThLtUi5d_<@#^y?I;tpwi~2sLZm^(QD$1qFjsuu%^Wz>i=o z*XplRpl&93TOia-?yd<6RAFg}pQ~;9+ed`DLw~0NwVmKw1EIR#uJ2W(UKGI91NxmK zLOr72r9jNbo~}P%DeRiB}|7XdUEgzy7xop?=r@p+G%M@XkP}CQm}YkE=qz!WsmF z9-z2;xO=(#xclW&d7?Z?p1j#$Fi2dg0q!*4Mew5(<}oIeI&*3}11u;gE&#xSf}#mY`F^<> zQVipU1;gl=NG_3paJ8pGdPC@bQu}}5Q^Ea5d10ye9Z?q>wBkb&T7!$5*Tl3v6act zS{OJfa}5iI#cVUQ114-ey+QDs6!R?wQ@C~4r>81oEh^5VOcpaE@sGOGaO{Wz>@|25 z0lq`< z73P6MnY}tMFV_lEEcTm-;S9sMBQkiN;e3U`j|u)HkinBbDU4M{4R5>qIlRnp<**!H zWmpd!ZXozGfW4@wivdK$l#5Jn*ezm z!Cw*lHAVi0A)m6V@SdF;V6??B)43(!roj9_7XxSd4#T}8!ro`NA7H`7d`Iy26n38i z`{=%bFOQzR8axcZ7FqLw-Q3braD;_}YQD?x#E7_08sITRYB4_&ygyK$E!mQ!$g?DO z&_nDoyfPxxtA^JUsGkY`B@n9TtlS@bPzC1%&DMK13WlC96HsOtgA4T}lgbyLS=^AN*l*2Vh*^-s;V+g#O2#@}m2)u*{ z3BUhMqgv0h1)ko)m#d&SmRMa@wQ50c2fPK_+s~fN2wrHpO_S(@eZFh%U>k})M@P%y z@U?r`b?kV5tY;_HG@J*E~!y!l4cSf)G40upiT*!r50(HG+Tn#7ZVAeMEGRFr^(H;W_5Qj zt88t9>ig_+*uwSn*3-ur;lvC*AmeFwb@$YGmU}vVQ&#~~mZluStgdi%`&n1yS>Nr2 zH;22sYFm3!r+&*A<7fgtkg^RjEzzs;m0X&dC~{8l-E*%&y`54q?5VO>!stQ)zTX2cigCzjeg)!vyMy|8KN_0I0_ zHh8=p$I+S~JoFeyq&}1aXJwR+1D}uaf2aUfwl3?SuYpGd0?>!JI_W)y2lNgVv9?}# z^1gP)XwHydPs}YZEVbs^@^Xsu%56CXrIq#^o84NO zQ&CWE%P+Q-=U3(zxH|GnihM$EQHtaR6a4mam9&xC%X;Z*X#?R)2oEMTag#J4ZIU(< zeiDIq9Qj$)IauL^jo=42>Hao6&Ix+t>|eGF_I8x{b$S-j=PW=0>4Uz(O?=-Kpr$?a zSFVn}PLHB@Hz3C~(pKq4=_cuBX&d1u6TY1A(+NL=@b&(qUDB=6os{+4q}!!C2tS4J zM-hJNCh0EeZs{JvgZ0}8Uq)HaIH0p2PV0N&QBpWi3O6txoUjb;q;`6GTH%h#Zg5Xo z2dDOFduwOECv}>r7+D*al#aP1cp10V+mW-ludgSkS2=H^n$J$@vEc@_TY6l2g7DzN z?1Zm`2s%vx*dWas+T_RmQ#4%dFK^pf;4;j0K=P57f}dy@jtFfnO}LB1)yI~>A$ z()-c}1fDeIYYATm2&&`ojcJecDJMyvNuSSzca~sRuhlUIFI@mz-rhc|buYrapwUj6 z+?=)?Hupefn$x-$(6f%-mNa^WE?nBv>q_hE?g{14sT*$6i6N%gxcId6@wo-XjcHx| zot-c04U%!x=w^5$oIS$Sl-AbS>h;1q;vbSJLKbArKvcA>mG!dJROhUO4I-d~=k~gL_l`|SG$bXbq{8R) z!C2^ZA-gdTex{x*by|iZzA>XrvQ8G^+Glf>r*k=2LtAT|r{4ol*)H{egCnP`yR&^y z#<6Vy(ljG#R)kEv&9PB%v=o49mdGGa`w;%Sgo9imkj`y zm#?xrke3ZV7Zw5G;C9;9lk4<38j*<~~IdGNCw>hQ=c^Dn>`4O5{XMs2R;dZnOw3LEUH# zIuV_Mu0U6!?dTEo7M`XB6~TP>U5qp!J1 zAZPlMYAD}IKfyzh;61*V_DOe0KT7+V4>^YL4d6xy?@jLM$*48z zs2TLZuUQe{yD`n+Q{he-5SdYLG$_*X3>fwFpz#=2cYEuqq}INqT=A>4^@0C$o& zRf^+VjMI%(#%d#+wT0uer?PXjaB3E+8a?bNEu5o04wg6YfHUEj5Pm7)ml3`jrg~7W z{H<&jQEI?vMyE2fo&U2tOU7oU+phn9w}Ja;#<@zjJ^vSucn#yWjjhH7jr0o(9_G1Y zxD;+YSIAA|rs~pl<8>vvX}TG@2Hi|ui*B}VzHWi8UAItoj&8GVyKbj$m+mp$Q{gM;=ziUJ(@?hx0Cw~H@}-|I)|v-ElTLVdBm zR9~jA)i>$q>D%<3`c?XK_2=s^)L*Q>RDZdCo&HMwdi@6dfc`H1J^K6f59lA#KdgU5 z|EPYq{t5k4`e*cS=)czgYREQBF?1SM8O}ER$8fvhVZ&a-%Z67CuN&SpybUFc_YEH! zJ~sSf_|5Q#;V%hEyrhwIl3tReQBo2tSEftzqz+g|3`loM4@*0x=cGN-Ug;I-HR%l_ zZ#03ciZDhSV~z2~WTV+wXe>6C8Ydacj1|U8u#2OO%Z=w6w-~n>Z#CX-ywmuIagTAY z@nz$y#@CH+8s9d)Yy8IeopGP>N8?Y%UyQ#Q|1kbF$~Y=|RQ{;xquNH1QRj@he$<_# z9vb!Vs7FRUI%@Z*=SS@swRhCZqh1~L`lugA$B)h)-7tFg=*6QuMteuE8GXj+b4PC) zedp*$N54Ayhtc~-|2+EF(Z7%WGsGHF8Zs@UETkf&GNdY`F=T$o!jQ!wOF}wBP6;_R zb93J?7pq_m6pS%q8qtXNP)1dqPhSy(Dyf=!VdN(9NM+Lbru( z54|n)j?lY8?+JY+^oOvhFl$(8*u=2OVbx(ZVRd20ggL_+!#cv2hph@*9d<&P9ClLJ zrD0cxZ4TQKc3s#FVRwbyANF9_j<83=c85I?_EgwwVPA&*81`ql6mAL+4G#~G36BdO z8=e@R6`mJ9Dg5a0W5VZ!yTj*)F9`1r?+xz@UlG14e0BJF;g^SB6@GR2#_&zyw}jsj zepmQC;SYxI2;UjLEBx8;SHeFG|1A8A@UOzZ5C0*2fB4T4hKR6;w20COXGB*-PegA- zU&Qi=^CB*fxH@8M#Iq5vN4y#FcEr08???O;@k_*S5r0Jd6^SAZkz*pmA|oQBB4Z*m zA~PeiBPT?bMox;H5;--pCbBNFKC&UQC30cp;>abDosnxJPm4Sw@~p^nA}@`+BJw|x zS4D1#d_MA}$iJe*D05VPR7=#cQ71%^sFR~kjXFK*%&3c^E{|Flb!F80sI5`AMBN&7 zd(=Hq_eDJr^-$D~s3)Rcj(Q{Nt*CdRK8*S}>eHytqxMB}(W9b6qQ^vsMMp$OMaM*E zL}x~4M^A`0M_Z%wq6?yDMz4szH2Q|<$D==u{xJr}2r=3iF~$&Mj2Rsh7c({{F(x@C zH6}e~TufHXw3zOgi(+n#c{t|9n0I47i1{ey)0od=zKr=ZR*D@RYl;nvjfjnkjf;(s z&5E56YmUv0&5tdNEsHIWt%$9Rog2F(c3Et9Y;SB|?DE)?V^4`)8+%&p#j%@WuZg`j z_WIbZu{XtTi`^c(BX(!(uGq(7ACG-9_UYJXW1o-R9~T`rKF$%>8Fzl%U2!|&9*%n? zZdcq3ac{@H8~1+PhjAareH!<9+)r`8#QhfcN8DfWD4vhk#HYtkjc(<9Efs5dUKQOYyJ7zZU;S{9EzwjMa}#9@{kb%&}X?zBu;%v0se+ ze(Vop_mBN~?5_#>gy@9i1am@R!lZ!;>SEqmxfcJ}dd`n&B@_Wf2B!8RyWAabQza;;e!lmF8Atfp$ zDJ3T*FQp)*C}mR0l$5C{wiHK7bBZTrNlIr*SBf{KKV?PAs+6-+E=d_kxi;ncl&vYZ zq}-Zvd&-?Ducquzot?Tk^~6+?dUER8)YDSWNIfg{oYeDDFHF58_43qhsoPU;PrWns zp49tOA4=Vs`e^FosZXXpo%(F*M`<`MJ}oP4TADX)ZQ38GME|L!V*H7@ZN9F*YMHBPC;chAX2nqbZ{~ z!;`TjV_8N|Mt{c2jMW*(XPlXFcE-6G7i4^z@ngnM8NX!wKCWq8+qlkg-Q#-4^^aRQ zj*L5H+-c*^9CyyR^Ts_i?(@u;%<4=}W^ZPH=E}^~nI~k*nHOhXl{t`kP3Co(H)P(G zd4J|ZnL9IgXFi$vOy+Z$Z)JX)6`nOVD?7`Qm6uhRH8E>)*3>Lp*3ntctfs7%tl3$e zSzB~Kg?02$%8=o@1YJAuDbH`sc z{_^qb#&615mvdFlhMY|~TXL??xiM#3&aF9j%1lk-5}7**w);X11HF%rne&=3~q*^Gx$B^IY?MbDMdgxx?IP?l$+D z`^_uOtIa2viTM=sY34J{=a|noUu3@2e1-W+^VQ}7^EKw{%v;Sjo41>9H{WHx*ZhEa zhxrlnW9BE!Pn(}J?=in*e%1Vj`EB!i<`2!Em_IjvW&YN@&%EFKi}`o+Ulwf9SVW6t z8EqM33AaR9Vl87WNtRSgh9%1~!D6xGSqd#BmPwYQEH+DpWxC~PORc5e;h{KvB1veB~Ha;@bC z%T1PBEVo(iwA^F4-|~=Ur{z)0lEuWYq_=3 zT5YYdI;;)WMr*TmwsoGh)!J@dWL;uiX6>3Ir%)L7IzT928yK_It{WABP zyr{gSywtpkyxP3_yso?zdB^2llXr98_Ph`BzRde3KPEpVKRthO{;~Oe`Pby%oWDK) z2-qLlYn@YEo zK3@7l>E6;GO8=P1P0XH{Ke1?{XJXgHV<%oT@ydx;PkdzJ(-WVY_}#=`C;l-hY*PHB z#7QNSY?CS`Et|A_(yB=pOj<~6# z?-dA;n|s+CLhfG4O>#BK1vgc(4qhm3rEV;0oplvQt+TduRDJaAIX&+$-_QT>{hagh z-RFDI_lWNu-$%YrL?c9>izbM^7D+^MQGo~$K_XIQ6Ri{N7xjrwirvIx#O`7*v5#0R zP8H{gwc-{rA*RJU#9iVZ@lEjq@gvD_iMwRH#7p8M5leC;#S*<_gJip;Q*u`FqvWdO zophLVr1VSa3h63oy0k!AB&DUi)FC|}{a$)X`at?z`cgJuwoJBM79&fMrOO!EI+;^; zTy{?OgY2p7mF%s2hJ2xXu{=VaAWxRJ$|*T3@0K5tAD2InKbODs8|OFKZ_`Yw+9dx6iNJ@2cNjzk3RI#T3PKgXKwW3b3NwHJ$t>U8MC&g|5S^i)8 zFZIv&*ZYJ1F8{6m-}oQ#Kka``>82c`bXR&S#Y&knL#b8jl$_F~Y*+Rv`;`OAKa?Mo zp91CvEDiWqKtw=7KyrX9U~9lP0Z#*71-uPh8Tg+-QDA)_9Eb%T3p^WmKFBj@X3(6V z%%H-c;-I}j2Z9aj zrJA6cq*AEDRBBbd3RYpNQ>qK9AHzq6dxTF6j}K1|&kElbzB_zh`19~L;qTN-)vMHB zt4q`s>T2~K^?vms^%M1<>NgQ>%)-85Stb43FRuh{P+Y!4bwkvLAoJZWmxQsY$oG$L$xbNZ)#E*@i z6hAdSCO#!TJ$_sK?)ZJ0A)3*eahgO;mL^xzsp;1ACb%VxNpMd{O~^~oCLBpPop3I3 zQsS({xry3DLtq$$Jypp_=8j_GCJZT{5deY70Wy#*jYm%#yo0D6UZzVrW z{xwCF5|@&Y@?FZYlMKzBT>Z^u6hCGu$$UX9Q+MWJG7!GuksYWjxDxo$*)Z+Dv(-e{LfLiVKWlI)7?>g)^IH?nW#EY4Y(vpT0brzOXf z)1PxC=X$Ppt~ghgYtL=Z-IV(wZ$#dxyo9{WyqvuKd3|{&^JnBQ%wL?Jov+I;&EJvV zmEV*9BL8jv`-0U4q5^3_ML}ahOF>V;(Sp8$ciLgvky@oTTpOv~sNJF6rG24&t9@VS zR~T9tUT7|K6bgk`3hxvS7A-DXS+u&Sx~QedRCK*)u;_tqg>J3RSJ$eebgb@%?w;;p zu~)HAvACEhwiffn4~m}`zbpwWi7nBTbe43N^p?7pPAQ#UT2Km^z+Kp_AEl|T(p4>STKUK+dqrg~D115o~fBy~HU>>LibzmuI0L#Eium-FLn?NH7gBVDH z3}^vu;5zUg_z?URd%JMpk)NO|F_+^+i=}6UJAkE+J2`Reu6 z&g!-rx0=su#@9@&nOuX_*lX6+IBJC25w#O*C)G}=onBj0i_~JZL@iwxTBoT?tV^y- ztLv}3QFpWMcHPhQe)a15$olB|xP~bW3;q_DiyQu@!PT(6VQ0gxhCPiyV|`;|V{>C` z<1dYWHok6r+xWhztLa!%U(<=E)6FZIMa`0CS+k;fQ}gcTz0F8(T-VdbUn(o!a_EE81#n7( zgg!=}p)b(4*ig&^n}*H6W@GcPh1gfvN^CXuHMSP>!4#MZOT@CUT&w^q!b-3TtQxDs z8n9-}h>@5b+l+N$yRm&(H`a?C$4+3Uv9s8DYyi8CJ;YvOAMwxdF}OQE9{0p&;&br% z_(FU!z7$`Di|}AP3XjD#coLq9=iyphhnL_04&t@A3Af-*yba%oZ^1k8J$M)1gZJVG z@x%Bj{33n_e}q5ApW@H)-|)Zi5BMj-jTlahBs_@e!~$X^@gKsM5ED{DPJ|FDB7%q_ zVu^SnozM~>(MX^KPLKpmu*7=8MYIzei7mu7VmEP!I7M70ZWBKf_laMK$HX7RYvM2B zJ@JtoLXIXq$+_fGavAv*xq|c}eMm7WBmGDv8AwKuiDWjZC#%RBvW{#Zn@Ef#Nrp6& zR?<$klbvJ_`8|1_93U@}Kay9-JLDkwfc%AgOg<%Fk)Np1)D&tCHJ@5UEuofC-qae( zhZ0dzN=}7P(NsEBKowFts)W*0Ra7n2Ks8ZD%0$tWi~5G@rjAg@sT0&`>Kt{Mx<>s( z-Jj4z{PqL?HmmC0bTnLMVHF)(FJ1yjw`GOY~FIGHU>2eX6O#q44BGl!U? z%yH%fbBejZ++iLwZ`dL1P8O+-crz-fRBB{L-?*qOc@eaxD3lLW|C#x71mT z7TAJWNDF7NTh?1#mNrYT<$~pz<(=id<%8uTH*r{Ds( zU@nYPbCFy!m(MkE9o!!7Fn5akfxF0E=B{x!xZB*%+;i>)_Z#;+_sKfcI>I{2I@aoL zonf7CU19aJDy>1*P;0m~(i&rpwN+1hQLwk}(bZNKf1?R(oP+gaOr+kkzTeYSm#U1krphub6V zG4^}B>!dxO2%-fBnen0=ppkpG;Y%FpJ#cnPoMgZNNBoR8%-d=j6^ zr}G7TA+P7_cq0$<7*FyXZ|B$ZF20TL;CJwQ`6K*E{tVyG5Aav{8~iQ)E~S7+UT|J=-f-S?K6E~EK6buwesF$r4Rw9y8sluq#0!Z+ijXPf2>F6mFbFk* zQP?7M2s?yb!XBYZ=n?h{hlHa-pKww*BlHUc!X@FdFeuy?9tyt-uZ6e5JK?`=>212U qk~V!C*mkw;e%r&gM{Q5qOWGUTTifw}G}q9f|8QK^Km7k~C;tzxuknol diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/WorkspaceSettings.xcsettings b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..bfffcfe0 --- /dev/null +++ b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ + + + + + HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges + + SnapshotAutomaticallyBeforeSignificantChanges + + + From 61aa068da0a6ebb6da084efe018952fc68da6d46 Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 22:37:09 +0800 Subject: [PATCH 09/13] update mac demo to OX 10.6 version --- Mac.xcodeproj/project.pbxproj | 4 ++-- .../UserInterfaceState.xcuserstate | Bin 29038 -> 29039 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Mac.xcodeproj/project.pbxproj b/Mac.xcodeproj/project.pbxproj index cc516900..68db94b8 100644 --- a/Mac.xcodeproj/project.pbxproj +++ b/Mac.xcodeproj/project.pbxproj @@ -676,7 +676,7 @@ HEADER_SEARCH_PATHS = "${SDK_DIR}/usr/include/libxml2"; INFOPLIST_FILE = "Mac Sample/Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; - MACOSX_DEPLOYMENT_TARGET = 10.5; + MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = Mac; SDKROOT = macosx; }; @@ -699,7 +699,7 @@ HEADER_SEARCH_PATHS = "${SDK_DIR}/usr/include/libxml2"; INFOPLIST_FILE = "Mac Sample/Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; - MACOSX_DEPLOYMENT_TARGET = 10.5; + MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = Mac; SDKROOT = macosx; }; diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate index 790bd533fb843799f7369c903ef7b6d5d72a2c82..d16310e36d504f54b0847b39a385fe50aab9a20b 100644 GIT binary patch delta 469 zcmXBGPe_w-7{GCVFOB)PVOEL|d597tb2KUn$(V_Qkzn+Dp6&VbR!U~tOgcnZj!Ddm zAUFdd6hg8>gyOw~r@D9uqDvr1l1$4oY!DHvgGKede7;|^CYLo&FZfN!yXZgT^A(lG z2DiM~(od)Vt_$A8*?E6SVKC)%rktUa)90~G8x!>6+0gop7sp2Sla#dByehKwC}8N0DJi3z-kgE)+% z@hvh`OjWd(_R|q+qA;~kgrd|&?c~xW>ZC5ZO1+ez>vWIiX^ppYCD(8*2RX!z+{_Uc zcKHhT@HOt^+nnONJj^3J%40mv4|tj%@?&u%AmvgayCp5jj7-RVnUZOlktZ@M&*Zth zlvlDS@8rE?WnDI8Q*x45qs4kq>ouq$J*FqLQJXZZEgI3NwrRVbSJb$6X}9)hLI?DY gCUr<{9 delta 468 zcmXBGTS${(7{KwpAC9Rk$t*>Py67AgmXsxuv=|Kr1Eb#O(dRG^c}Sb47ZG-tD;hx{ z*n%PoVkAa+A$%8+H+IuS5ZwrZC`HpmOBNwAyXZjmzxn;YWlT0>#u|O5%5Cxmz25wh z>ei#~3;*JYzkBMo`yevzD|FTp&bfqhW8kYRHffA?=OL8m%}@Iqx2F#BZgbde;ABah zt=b_wYTwxRcG}L`k2YgJ+eQ1u=Ik#pkOw{}f@0VRWl#REJGG@@B@CMA4{+l%W*Sq!=1PX_u&Do!fHH@VLXjz5s|PNTd@PX;uynAcny;{ z*zl7)R6u34g?7*(s-*x0DMVq4P#q~XQ46)vdFrAV_0T#+JPQJk1e1!-2CMWq05AqPF_z9=^DUXPeB3UmRWRu*I_+7a#59P6>Wmulca~YGD z@><@?l+4Hn`6LUnB+HVOoO-lC_v(JF&`Ld`$FxRkHK0KaX;>p#r)LzjUfZ-oJ2j^L idR4D$Lg)3nuIQ?+MJXDK_C+sy{^dCTO-XOD>Hh;-%eDFd From 87fa7576b5549c41deacfb73cb4dd99077ee5d23 Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 22:57:10 +0800 Subject: [PATCH 10/13] add xcworkspace --- .../UserInterfaceState.xcuserstate | Bin 29039 -> 30950 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate index d16310e36d504f54b0847b39a385fe50aab9a20b..2e16f2aa53e35a46492906e852b56f98a77c7090 100644 GIT binary patch delta 14922 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 A?EnA( From ce1116d8dd8a471815285d853ca7844343b594c0 Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 23:17:25 +0800 Subject: [PATCH 11/13] update README file --- README.markdown | 75 +++++++++++++++++- .../UserInterfaceState.xcuserstate | Bin 30950 -> 30947 bytes 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/README.markdown b/README.markdown index 7fe1f908..c14d68bd 100644 --- a/README.markdown +++ b/README.markdown @@ -2,31 +2,100 @@ ASIHTTPRequest is an easy to use wrapper around the CFNetwork API that makes som It is suitable performing basic HTTP requests and interacting with REST-based services (GET / POST / PUT / DELETE). The included ASIFormDataRequest subclass makes it easy to submit POST data and files using multipart/form-data. -It provides: +####It provides: + * A straightforward interface for submitting data to and fetching data from webservers + + * Download data to memory or directly to a file on disk + + * Submit files on local drives as part of POST data, compatible with the HTML file input mechanism + + + * Stream request bodies directly from disk to the server, to conserve memory + + + * Resume for partial downloads + + * Easy access to request and response HTTP headers + + + * Progress delegates (NSProgressIndicators and UIProgressViews) to show information about download AND upload progress + + + * Auto-magic management of upload and download progress indicators for operation queues + + + * Basic, Digest + NTLM authentication support, credentials are automatically re-used for the duration of a session, and can be stored for later in the Keychain. + + + * Cookie support + + + * [NEW] Requests can continue to run when your app moves to the background (iOS 4+) + + + * GZIP support for response data AND request bodies + + + * The included ASIDownloadCache class lets requests transparently cache responses, and allow requests for cached data to succeed even when there is no network available + + + * [NEW] ASIWebPageRequest - download complete webpages, including external resources like images and stylesheets. Pages of any size can be indefinitely cached, and displayed in a UIWebview / WebView even when you have no network connection. + + + * Easy to use support for Amazon S3 - no need to fiddle around signing requests yourself! + + + * Full support for Rackspace Cloud Files + + + * [NEW] Client certificates support + + + * Supports manual and auto-detected proxies, authenticating proxies, and PAC file auto-configuration. The built-in login dialog lets your iPhone application work transparently with authenticating proxies without any additional effort. + + + * Bandwidth throttling support + + + * Support for persistent connections + + + * Supports synchronous & asynchronous requests + + + * Get notifications about changes in your request state via delegation or [NEW] blocks (Mac OS X 10.6, iOS 4 and above) + + + * Comes with a broad range of unit tests -ASIHTTPRequest is compatible with Mac OS 10.5 or later, and iOS 3.0 or later. -Documentation is available "here":http://allseeing-i.com/ASIHTTPRequest. \ No newline at end of file + + + + +ASIHTTPRequest is compatible with Mac OS 32/64bit on 10.6 or later, and iOS 5.1.1 or later. + +Documentation is available [here](http://allseeing-i.com/ASIHTTPRequest). diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate index 2e16f2aa53e35a46492906e852b56f98a77c7090..5c06f79a5dbb412397fa393262010722800b11bb 100644 GIT binary patch delta 11263 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 From 953f491ac5f3c89b69393005a71f8a22b9d8701d Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 23:53:49 +0800 Subject: [PATCH 12/13] update Reachability to 3.5 --- External/Reachability/Reachability.h | 246 ++----- External/Reachability/Reachability.m | 1020 +++++++------------------- 2 files changed, 339 insertions(+), 927 deletions(-) diff --git a/External/Reachability/Reachability.h b/External/Reachability/Reachability.h index dc42472b..fc3a9796 100644 --- a/External/Reachability/Reachability.h +++ b/External/Reachability/Reachability.h @@ -1,194 +1,98 @@ /* - File: Reachability.h Abstract: Basic demonstration of how to use the SystemConfiguration Reachablity APIs. - - Version: 2.0.4ddg - */ - -/* - Significant additions made by Andrew W. Donoho, August 11, 2009. - This is a derived work of Apple's Reachability v2.0 class. - - The below license is the new BSD license with the OSI recommended personalizations. - - - Extensions Copyright (C) 2009 Donoho Design Group, LLC. All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of Andrew W. Donoho nor Donoho Design Group, L.L.C. - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY DONOHO DESIGN GROUP, L.L.C. "AS IS" AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + Version: 3.5 + + Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple + Inc. ("Apple") in consideration of your agreement to the following + terms, and your use, installation, modification or redistribution of + this Apple software constitutes acceptance of these terms. If you do + not agree with these terms, please do not use, install, modify or + redistribute this Apple software. + + In consideration of your agreement to abide by the following terms, and + subject to these terms, Apple grants you a personal, non-exclusive + license, under Apple's copyrights in this original Apple software (the + "Apple Software"), to use, reproduce, modify and redistribute the Apple + Software, with or without modifications, in source and/or binary forms; + provided that if you redistribute the Apple Software in its entirety and + without modifications, you must retain this notice and the following + text and disclaimers in all such redistributions of the Apple Software. + Neither the name, trademarks, service marks or logos of Apple Inc. may + be used to endorse or promote products derived from the Apple Software + without specific prior written permission from Apple. Except as + expressly stated in this notice, no other rights or licenses, express or + implied, are granted by Apple herein, including but not limited to any + patent rights that may be infringed by your derivative works or by other + works in which the Apple Software may be incorporated. + + The Apple Software is provided by Apple on an "AS IS" basis. APPLE + MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION + THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND + OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. + + IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, + MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED + AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), + STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + Copyright (C) 2014 Apple Inc. All Rights Reserved. */ - -/* - - Apple's Original License on Reachability v2.0 - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. - ("Apple") in consideration of your agreement to the following terms, and your - use, installation, modification or redistribution of this Apple software - constitutes acceptance of these terms. If you do not agree with these terms, - please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject - to these terms, Apple grants you a personal, non-exclusive license, under - Apple's copyrights in this original Apple software (the "Apple Software"), to - use, reproduce, modify and redistribute the Apple Software, with or without - modifications, in source and/or binary forms; provided that if you redistribute - the Apple Software in its entirety and without modifications, you must retain - this notice and the following text and disclaimers in all such redistributions - of the Apple Software. - - Neither the name, trademarks, service marks or logos of Apple Inc. may be used - to endorse or promote products derived from the Apple Software without specific - prior written permission from Apple. Except as expressly stated in this notice, - no other rights or licenses, express or implied, are granted by Apple herein, - including but not limited to any patent rights that may be infringed by your - derivative works or by other works in which the Apple Software may be - incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO - WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED - WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR - DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF - CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF - APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Copyright (C) 2009 Apple Inc. All Rights Reserved. - - */ - - -/* - DDG extensions include: - Each reachability object now has a copy of the key used to store it in a - dictionary. This allows each observer to quickly determine if the event is - important to them. - - -currentReachabilityStatus also has a significantly different decision criteria than - Apple's code. - - A multiple convenience test methods have been added. - */ - #import #import #import -#define USE_DDG_EXTENSIONS 1 // Use DDG's Extensions to test network criteria. -// Since NSAssert and NSCAssert are used in this code, -// I recommend you set NS_BLOCK_ASSERTIONS=1 in the release versions of your projects. - -enum { - - // DDG NetworkStatus Constant Names. - kNotReachable = 0, // Apple's code depends upon 'NotReachable' being the same value as 'NO'. - kReachableViaWWAN, // Switched order from Apple's enum. WWAN is active before WiFi. - kReachableViaWiFi - -}; -typedef uint32_t NetworkStatus; - -enum { - - // Apple NetworkStatus Constant Names. - NotReachable = kNotReachable, - ReachableViaWiFi = kReachableViaWiFi, - ReachableViaWWAN = kReachableViaWWAN - -}; - - -extern NSString *const kInternetConnection; -extern NSString *const kLocalWiFiConnection; -extern NSString *const kReachabilityChangedNotification; -@interface Reachability: NSObject { - -@private - NSString *key_; - SCNetworkReachabilityRef reachabilityRef; +typedef enum : NSInteger { + NotReachable = 0, + ReachableViaWiFi, + ReachableViaWWAN +} NetworkStatus; -} -@property (atomic, copy) NSString *key; // Atomic because network operations are asynchronous. +extern NSString *kReachabilityChangedNotification; -// Designated Initializer. -- (Reachability *) initWithReachabilityRef: (SCNetworkReachabilityRef) ref; -// Use to check the reachability of a particular host name. -+ (Reachability *) reachabilityWithHostName: (NSString*) hostName; +@interface Reachability : NSObject -// Use to check the reachability of a particular IP address. -+ (Reachability *) reachabilityWithAddress: (const struct sockaddr_in*) hostAddress; - -// Use to check whether the default route is available. -// Should be used to, at minimum, establish network connectivity. -+ (Reachability *) reachabilityForInternetConnection; - -// Use to check whether a local wifi connection is available. -+ (Reachability *) reachabilityForLocalWiFi; - -//Start listening for reachability notifications on the current run loop. -- (BOOL) startNotifier; -- (void) stopNotifier; - -// Comparison routines to enable choosing actions in a notification. -- (BOOL) isEqual: (Reachability *) r; - -// These are the status tests. -- (NetworkStatus) currentReachabilityStatus; +/*! + * Use to check the reachability of a given host name. + */ ++ (instancetype)reachabilityWithHostName:(NSString *)hostName; -// The main direct test of reachability. -- (BOOL) isReachable; +/*! + * Use to check the reachability of a given IP address. + */ ++ (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress; -// WWAN may be available, but not active until a connection has been established. -// WiFi may require a connection for VPN on Demand. -- (BOOL) isConnectionRequired; // Identical DDG variant. -- (BOOL) connectionRequired; // Apple's routine. +/*! + * Checks whether the default route is available. Should be used by applications that do not connect to a particular host. + */ ++ (instancetype)reachabilityForInternetConnection; -// Dynamic, on demand connection? -- (BOOL) isConnectionOnDemand; +/*! + * Checks whether a local WiFi connection is available. + */ ++ (instancetype)reachabilityForLocalWiFi; -// Is user intervention required? -- (BOOL) isInterventionRequired; +/*! + * Start listening for reachability notifications on the current run loop. + */ +- (BOOL)startNotifier; +- (void)stopNotifier; -// Routines for specific connection testing by your app. -- (BOOL) isReachableViaWWAN; -- (BOOL) isReachableViaWiFi; +- (NetworkStatus)currentReachabilityStatus; -- (SCNetworkReachabilityFlags) reachabilityFlags; +/*! + * WWAN may be available, but not active until a connection has been established. WiFi may require a connection for VPN on Demand. + */ +- (BOOL)connectionRequired; -@end +@end \ No newline at end of file diff --git a/External/Reachability/Reachability.m b/External/Reachability/Reachability.m index 8648ea69..8dd4b960 100644 --- a/External/Reachability/Reachability.m +++ b/External/Reachability/Reachability.m @@ -1,814 +1,322 @@ /* - File: Reachability.m Abstract: Basic demonstration of how to use the SystemConfiguration Reachablity APIs. + Version: 3.5 - Version: 2.0.4ddg - */ - -/* - Significant additions made by Andrew W. Donoho, August 11, 2009. - This is a derived work of Apple's Reachability v2.0 class. + Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple + Inc. ("Apple") in consideration of your agreement to the following + terms, and your use, installation, modification or redistribution of + this Apple software constitutes acceptance of these terms. If you do + not agree with these terms, please do not use, install, modify or + redistribute this Apple software. - The below license is the new BSD license with the OSI recommended personalizations. - - - Extensions Copyright (C) 2009 Donoho Design Group, LLC. All Rights Reserved. + In consideration of your agreement to abide by the following terms, and + subject to these terms, Apple grants you a personal, non-exclusive + license, under Apple's copyrights in this original Apple software (the + "Apple Software"), to use, reproduce, modify and redistribute the Apple + Software, with or without modifications, in source and/or binary forms; + provided that if you redistribute the Apple Software in its entirety and + without modifications, you must retain this notice and the following + text and disclaimers in all such redistributions of the Apple Software. + Neither the name, trademarks, service marks or logos of Apple Inc. may + be used to endorse or promote products derived from the Apple Software + without specific prior written permission from Apple. Except as + expressly stated in this notice, no other rights or licenses, express or + implied, are granted by Apple herein, including but not limited to any + patent rights that may be infringed by your derivative works or by other + works in which the Apple Software may be incorporated. - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: + The Apple Software is provided by Apple on an "AS IS" basis. APPLE + MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION + THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND + OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. + IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, + MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED + AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), + STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of Andrew W. Donoho nor Donoho Design Group, L.L.C. - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY DONOHO DESIGN GROUP, L.L.C. "AS IS" AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + Copyright (C) 2014 Apple Inc. All Rights Reserved. */ - -/* - - Apple's Original License on Reachability v2.0 - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. - ("Apple") in consideration of your agreement to the following terms, and your - use, installation, modification or redistribution of this Apple software - constitutes acceptance of these terms. If you do not agree with these terms, - please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject - to these terms, Apple grants you a personal, non-exclusive license, under - Apple's copyrights in this original Apple software (the "Apple Software"), to - use, reproduce, modify and redistribute the Apple Software, with or without - modifications, in source and/or binary forms; provided that if you redistribute - the Apple Software in its entirety and without modifications, you must retain - this notice and the following text and disclaimers in all such redistributions - of the Apple Software. - - Neither the name, trademarks, service marks or logos of Apple Inc. may be used - to endorse or promote products derived from the Apple Software without specific - prior written permission from Apple. Except as expressly stated in this notice, - no other rights or licenses, express or implied, are granted by Apple herein, - including but not limited to any patent rights that may be infringed by your - derivative works or by other works in which the Apple Software may be - incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO - WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED - WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR - DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF - CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF - APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Copyright (C) 2009 Apple Inc. All Rights Reserved. - -*/ - -/* - Each reachability object now has a copy of the key used to store it in a dictionary. - This allows each observer to quickly determine if the event is important to them. -*/ - -#import -#import -#import #import #import #import +#import #import #import "Reachability.h" -NSString *const kInternetConnection = @"InternetConnection"; -NSString *const kLocalWiFiConnection = @"LocalWiFiConnection"; -NSString *const kReachabilityChangedNotification = @"NetworkReachabilityChangedNotification"; - -#define CLASS_DEBUG 1 // Turn on logReachabilityFlags. Must also have a project wide defined DEBUG. - -#if (defined DEBUG && defined CLASS_DEBUG) -#define logReachabilityFlags(flags) (logReachabilityFlags_(__PRETTY_FUNCTION__, __LINE__, flags)) - -static NSString *reachabilityFlags_(SCNetworkReachabilityFlags flags) { - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 30000) // Apple advises you to use the magic number instead of a symbol. - return [NSString stringWithFormat:@"Reachability Flags: %c%c %c%c%c%c%c%c%c", - (flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-', - (flags & kSCNetworkReachabilityFlagsReachable) ? 'R' : '-', - - (flags & kSCNetworkReachabilityFlagsConnectionRequired) ? 'c' : '-', - (flags & kSCNetworkReachabilityFlagsTransientConnection) ? 't' : '-', - (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-', - (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) ? 'C' : '-', - (flags & kSCNetworkReachabilityFlagsConnectionOnDemand) ? 'D' : '-', - (flags & kSCNetworkReachabilityFlagsIsLocalAddress) ? 'l' : '-', - (flags & kSCNetworkReachabilityFlagsIsDirect) ? 'd' : '-']; -#else - // Compile out the v3.0 features for v2.2.1 deployment. - return [NSString stringWithFormat:@"Reachability Flags: %c%c %c%c%c%c%c%c", - (flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-', - (flags & kSCNetworkReachabilityFlagsReachable) ? 'R' : '-', - - (flags & kSCNetworkReachabilityFlagsConnectionRequired) ? 'c' : '-', - (flags & kSCNetworkReachabilityFlagsTransientConnection) ? 't' : '-', - (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-', - // v3 kSCNetworkReachabilityFlagsConnectionOnTraffic == v2 kSCNetworkReachabilityFlagsConnectionAutomatic - (flags & kSCNetworkReachabilityFlagsConnectionAutomatic) ? 'C' : '-', - // (flags & kSCNetworkReachabilityFlagsConnectionOnDemand) ? 'D' : '-', // No v2 equivalent. - (flags & kSCNetworkReachabilityFlagsIsLocalAddress) ? 'l' : '-', - (flags & kSCNetworkReachabilityFlagsIsDirect) ? 'd' : '-']; -#endif - -} // reachabilityFlags_() - -static void logReachabilityFlags_(const char *name, int line, SCNetworkReachabilityFlags flags) { - - NSLog(@"%s (%d) \n\t%@", name, line, reachabilityFlags_(flags)); - -} // logReachabilityFlags_() - -#define logNetworkStatus(status) (logNetworkStatus_(__PRETTY_FUNCTION__, __LINE__, status)) - -static void logNetworkStatus_(const char *name, int line, NetworkStatus status) { - - NSString *statusString = nil; - - switch (status) { - case kNotReachable: - statusString = @"Not Reachable"; - break; - case kReachableViaWWAN: - statusString = @"Reachable via WWAN"; - break; - case kReachableViaWiFi: - statusString = @"Reachable via WiFi"; - break; - } - - NSLog(@"%s (%d) \n\tNetwork Status: %@", name, line, statusString); - -} // logNetworkStatus_() - -#else -#define logReachabilityFlags(flags) -#define logNetworkStatus(status) + +NSString *kReachabilityChangedNotification = @"kNetworkReachabilityChangedNotification"; + + +#pragma mark - Supporting functions + +#define kShouldPrintReachabilityFlags 1 + +static void PrintReachabilityFlags(SCNetworkReachabilityFlags flags, const char* comment) +{ +#if kShouldPrintReachabilityFlags + + NSLog(@"Reachability Flag Status: %c%c %c%c%c%c%c%c%c %s\n", + (flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-', + (flags & kSCNetworkReachabilityFlagsReachable) ? 'R' : '-', + + (flags & kSCNetworkReachabilityFlagsTransientConnection) ? 't' : '-', + (flags & kSCNetworkReachabilityFlagsConnectionRequired) ? 'c' : '-', + (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) ? 'C' : '-', + (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-', + (flags & kSCNetworkReachabilityFlagsConnectionOnDemand) ? 'D' : '-', + (flags & kSCNetworkReachabilityFlagsIsLocalAddress) ? 'l' : '-', + (flags & kSCNetworkReachabilityFlagsIsDirect) ? 'd' : '-', + comment + ); #endif +} + -@interface Reachability (private) +static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info) +{ +#pragma unused (target, flags) + NSCAssert(info != NULL, @"info was NULL in ReachabilityCallback"); + NSCAssert([(__bridge NSObject*) info isKindOfClass: [Reachability class]], @"info was wrong class in ReachabilityCallback"); + + Reachability* noteObject = (__bridge Reachability *)info; + // Post a notification to notify the client that the network reachability changed. + [[NSNotificationCenter defaultCenter] postNotificationName: kReachabilityChangedNotification object: noteObject]; +} -- (NetworkStatus) networkStatusForFlags: (SCNetworkReachabilityFlags) flags; -@end +#pragma mark - Reachability implementation @implementation Reachability +{ + BOOL _alwaysReturnLocalWiFiStatus; //default is NO + SCNetworkReachabilityRef _reachabilityRef; +} -@synthesize key = key_; ++ (instancetype)reachabilityWithHostName:(NSString *)hostName +{ + Reachability* returnValue = NULL; + SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, [hostName UTF8String]); + if (reachability != NULL) + { + returnValue= [[self alloc] init]; + if (returnValue != NULL) + { + returnValue->_reachabilityRef = reachability; + returnValue->_alwaysReturnLocalWiFiStatus = NO; + } + } + #if !__has_feature(objc_arc) + return [returnValue autorelease]; + #else + return returnValue; + #endif +} -// Preclude direct access to ivars. -+ (BOOL) accessInstanceVariablesDirectly { - - return NO; -} // accessInstanceVariablesDirectly ++ (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress +{ + SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)hostAddress); + + Reachability* returnValue = NULL; + + if (reachability != NULL) + { + returnValue = [[self alloc] init]; + if (returnValue != NULL) + { + returnValue->_reachabilityRef = reachability; + returnValue->_alwaysReturnLocalWiFiStatus = NO; + } + } + #if !__has_feature(objc_arc) + return [returnValue autorelease]; + #else + return returnValue; + #endif +} -- (void) dealloc { - - [self stopNotifier]; - if(reachabilityRef) { - - CFRelease(reachabilityRef); reachabilityRef = NULL; - - } - - self.key = nil; - - [super dealloc]; - -} // dealloc + ++ (instancetype)reachabilityForInternetConnection +{ + struct sockaddr_in zeroAddress; + bzero(&zeroAddress, sizeof(zeroAddress)); + zeroAddress.sin_len = sizeof(zeroAddress); + zeroAddress.sin_family = AF_INET; + + return [self reachabilityWithAddress:&zeroAddress]; +} -- (Reachability *) initWithReachabilityRef: (SCNetworkReachabilityRef) ref ++ (instancetype)reachabilityForLocalWiFi { - self = [super init]; - if (self != nil) + struct sockaddr_in localWifiAddress; + bzero(&localWifiAddress, sizeof(localWifiAddress)); + localWifiAddress.sin_len = sizeof(localWifiAddress); + localWifiAddress.sin_family = AF_INET; + + // IN_LINKLOCALNETNUM is defined in as 169.254.0.0. + localWifiAddress.sin_addr.s_addr = htonl(IN_LINKLOCALNETNUM); + + Reachability* returnValue = [self reachabilityWithAddress: &localWifiAddress]; + if (returnValue != NULL) { - reachabilityRef = ref; - } - - return self; - -} // initWithReachabilityRef: - - -#if (defined DEBUG && defined CLASS_DEBUG) -- (NSString *) description { - - NSAssert(reachabilityRef, @"-description called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags = 0; - - SCNetworkReachabilityGetFlags(reachabilityRef, &flags); - - return [NSString stringWithFormat: @"%@\n\t%@", self.key, reachabilityFlags_(flags)]; - -} // description -#endif + returnValue->_alwaysReturnLocalWiFiStatus = YES; + } + + return returnValue; +} -#pragma mark - -#pragma mark Notification Management Methods - - -//Start listening for reachability notifications on the current run loop -static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info) { - - #pragma unused (target, flags) - NSCAssert(info, @"info was NULL in ReachabilityCallback"); - NSCAssert([(NSObject*) info isKindOfClass: [Reachability class]], @"info was the wrong class in ReachabilityCallback"); - - //We're on the main RunLoop, so an NSAutoreleasePool is not necessary, but is added defensively - // in case someone uses the Reachablity object in a different thread. - NSAutoreleasePool* pool = [NSAutoreleasePool new]; - - // Post a notification to notify the client that the network reachability changed. - [[NSNotificationCenter defaultCenter] postNotificationName: kReachabilityChangedNotification - object: (Reachability *) info]; - - [pool release]; - -} // ReachabilityCallback() - - -- (BOOL) startNotifier { - - SCNetworkReachabilityContext context = {0, self, NULL, NULL, NULL}; - - if(SCNetworkReachabilitySetCallback(reachabilityRef, ReachabilityCallback, &context)) { - - if(SCNetworkReachabilityScheduleWithRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode)) { - - return YES; - - } - - } - - return NO; - -} // startNotifier - - -- (void) stopNotifier { - - if(reachabilityRef) { - - SCNetworkReachabilityUnscheduleFromRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); - - } - -} // stopNotifier +#pragma mark - Start and stop notifier - -- (BOOL) isEqual: (Reachability *) r { - - return [r.key isEqualToString: self.key]; - -} // isEqual: +- (BOOL)startNotifier +{ + BOOL returnValue = NO; + SCNetworkReachabilityContext context = {0, (__bridge void *)(self), NULL, NULL, NULL}; + + if (SCNetworkReachabilitySetCallback(_reachabilityRef, ReachabilityCallback, &context)) + { + if (SCNetworkReachabilityScheduleWithRunLoop(_reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode)) + { + returnValue = YES; + } + } + + return returnValue; +} -#pragma mark - -#pragma mark Reachability Allocation Methods +- (void)stopNotifier +{ + if (_reachabilityRef != NULL) + { + SCNetworkReachabilityUnscheduleFromRunLoop(_reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); + } +} -+ (Reachability *) reachabilityWithHostName: (NSString *) hostName { - - SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithName(NULL, [hostName UTF8String]); - - if (ref) { - - Reachability *r = [[[self alloc] initWithReachabilityRef: ref] autorelease]; - - r.key = hostName; - - return r; - - } - - return nil; - -} // reachabilityWithHostName - - -+ (NSString *) makeAddressKey: (in_addr_t) addr { - // addr is assumed to be in network byte order. - - static const int highShift = 24; - static const int highMidShift = 16; - static const int lowMidShift = 8; - static const in_addr_t mask = 0x000000ff; - - addr = ntohl(addr); - - return [NSString stringWithFormat: @"%d.%d.%d.%d", - (addr >> highShift) & mask, - (addr >> highMidShift) & mask, - (addr >> lowMidShift) & mask, - addr & mask]; - -} // makeAddressKey: - - -+ (Reachability *) reachabilityWithAddress: (const struct sockaddr_in *) hostAddress { - - SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)hostAddress); - - if (ref) { - - Reachability *r = [[[self alloc] initWithReachabilityRef: ref] autorelease]; - - r.key = [self makeAddressKey: hostAddress->sin_addr.s_addr]; - - return r; - - } - - return nil; - -} // reachabilityWithAddress - - -+ (Reachability *) reachabilityForInternetConnection { - - struct sockaddr_in zeroAddress; - bzero(&zeroAddress, sizeof(zeroAddress)); - zeroAddress.sin_len = sizeof(zeroAddress); - zeroAddress.sin_family = AF_INET; - - Reachability *r = [self reachabilityWithAddress: &zeroAddress]; - - r.key = kInternetConnection; - - return r; - -} // reachabilityForInternetConnection - - -+ (Reachability *) reachabilityForLocalWiFi { - - struct sockaddr_in localWifiAddress; - bzero(&localWifiAddress, sizeof(localWifiAddress)); - localWifiAddress.sin_len = sizeof(localWifiAddress); - localWifiAddress.sin_family = AF_INET; - // IN_LINKLOCALNETNUM is defined in as 169.254.0.0 - localWifiAddress.sin_addr.s_addr = htonl(IN_LINKLOCALNETNUM); - - Reachability *r = [self reachabilityWithAddress: &localWifiAddress]; - - r.key = kLocalWiFiConnection; - - return r; - -} // reachabilityForLocalWiFi - - -#pragma mark - -#pragma mark Network Flag Handling Methods - - -#if USE_DDG_EXTENSIONS -// -// iPhone condition codes as reported by a 3GS running iPhone OS v3.0. -// Airplane Mode turned on: Reachability Flag Status: -- ------- -// WWAN Active: Reachability Flag Status: WR -t----- -// WWAN Connection required: Reachability Flag Status: WR ct----- -// WiFi turned on: Reachability Flag Status: -R ------- Reachable. -// Local WiFi turned on: Reachability Flag Status: -R xxxxxxd Reachable. -// WiFi turned on: Reachability Flag Status: -R ct----- Connection down. (Non-intuitive, empirically determined answer.) -const SCNetworkReachabilityFlags kConnectionDown = kSCNetworkReachabilityFlagsConnectionRequired | - kSCNetworkReachabilityFlagsTransientConnection; -// WiFi turned on: Reachability Flag Status: -R ct-i--- Reachable but it will require user intervention (e.g. enter a WiFi password). -// WiFi turned on: Reachability Flag Status: -R -t----- Reachable via VPN. -// -// In the below method, an 'x' in the flag status means I don't care about its value. -// -// This method differs from Apple's by testing explicitly for empirically observed values. -// This gives me more confidence in it's correct behavior. Apple's code covers more cases -// than mine. My code covers the cases that occur. -// -- (NetworkStatus) networkStatusForFlags: (SCNetworkReachabilityFlags) flags { - - if (flags & kSCNetworkReachabilityFlagsReachable) { - - // Local WiFi -- Test derived from Apple's code: -localWiFiStatusForFlags:. - if (self.key == kLocalWiFiConnection) { - - // Reachability Flag Status: xR xxxxxxd Reachable. - return (flags & kSCNetworkReachabilityFlagsIsDirect) ? kReachableViaWiFi : kNotReachable; - - } - - // Observed WWAN Values: - // WWAN Active: Reachability Flag Status: WR -t----- - // WWAN Connection required: Reachability Flag Status: WR ct----- - // - // Test Value: Reachability Flag Status: WR xxxxxxx - if (flags & kSCNetworkReachabilityFlagsIsWWAN) { return kReachableViaWWAN; } - - // Clear moot bits. - flags &= ~(uint32_t)kSCNetworkReachabilityFlagsReachable; - flags &= ~(uint32_t)kSCNetworkReachabilityFlagsIsDirect; - flags &= ~(uint32_t)kSCNetworkReachabilityFlagsIsLocalAddress; // kInternetConnection is local. - - // Reachability Flag Status: -R ct---xx Connection down. - if (flags == kConnectionDown) { return kNotReachable; } - - // Reachability Flag Status: -R -t---xx Reachable. WiFi + VPN(is up) (Thank you Ling Wang) - if (flags & kSCNetworkReachabilityFlagsTransientConnection) { return kReachableViaWiFi; } - - // Reachability Flag Status: -R -----xx Reachable. - if (flags == 0) { return kReachableViaWiFi; } - - // Apple's code tests for dynamic connection types here. I don't. - // If a connection is required, regardless of whether it is on demand or not, it is a WiFi connection. - // If you care whether a connection needs to be brought up, use -isConnectionRequired. - // If you care about whether user intervention is necessary, use -isInterventionRequired. - // If you care about dynamically establishing the connection, use -isConnectionIsOnDemand. - - // Reachability Flag Status: -R cxxxxxx Reachable. - if (flags & kSCNetworkReachabilityFlagsConnectionRequired) { return kReachableViaWiFi; } - - // Required by the compiler. Should never get here. Default to not connected. -#if (defined DEBUG && defined CLASS_DEBUG) - NSAssert1(NO, @"Uncaught reachability test. Flags: %@", reachabilityFlags_(flags)); -#endif - return kNotReachable; - - } - - // Reachability Flag Status: x- xxxxxxx - return kNotReachable; - -} // networkStatusForFlags: - - -- (NetworkStatus) currentReachabilityStatus { - - NSAssert(reachabilityRef, @"currentReachabilityStatus called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags = 0; - NetworkStatus status = kNotReachable; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - -// logReachabilityFlags(flags); - - status = [self networkStatusForFlags: flags]; - - return status; - - } - - return kNotReachable; - -} // currentReachabilityStatus - - -- (BOOL) isReachable { - - NSAssert(reachabilityRef, @"isReachable called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags = 0; - NetworkStatus status = kNotReachable; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - -// logReachabilityFlags(flags); - - status = [self networkStatusForFlags: flags]; - -// logNetworkStatus(status); - - return (kNotReachable != status); - - } - - return NO; - -} // isReachable - - -- (BOOL) isConnectionRequired { - - NSAssert(reachabilityRef, @"isConnectionRequired called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - - logReachabilityFlags(flags); - - return (flags & kSCNetworkReachabilityFlagsConnectionRequired); - - } - - return NO; - -} // isConnectionRequired - - -- (BOOL) connectionRequired { - - return [self isConnectionRequired]; - -} // connectionRequired +- (void)dealloc +{ + [self stopNotifier]; + if (_reachabilityRef != NULL) + { + CFRelease(_reachabilityRef); + } +#if !__has_feature(objc_arc) + return [super dealloc]; #endif +} -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 30000) -static const SCNetworkReachabilityFlags kOnDemandConnection = kSCNetworkReachabilityFlagsConnectionOnTraffic | - kSCNetworkReachabilityFlagsConnectionOnDemand; -#else -static const SCNetworkReachabilityFlags kOnDemandConnection = kSCNetworkReachabilityFlagsConnectionAutomatic; -#endif - -- (BOOL) isConnectionOnDemand { - - NSAssert(reachabilityRef, @"isConnectionIsOnDemand called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - - logReachabilityFlags(flags); - - return ((flags & kSCNetworkReachabilityFlagsConnectionRequired) && - (flags & kOnDemandConnection)); - - } - - return NO; - -} // isConnectionOnDemand - - -- (BOOL) isInterventionRequired { - - NSAssert(reachabilityRef, @"isInterventionRequired called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - - logReachabilityFlags(flags); - - return ((flags & kSCNetworkReachabilityFlagsConnectionRequired) && - (flags & kSCNetworkReachabilityFlagsInterventionRequired)); - - } - - return NO; - -} // isInterventionRequired - - -- (BOOL) isReachableViaWWAN { - - NSAssert(reachabilityRef, @"isReachableViaWWAN called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags = 0; - NetworkStatus status = kNotReachable; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - - logReachabilityFlags(flags); - - status = [self networkStatusForFlags: flags]; - - return (kReachableViaWWAN == status); - - } - - return NO; - -} // isReachableViaWWAN - - -- (BOOL) isReachableViaWiFi { - - NSAssert(reachabilityRef, @"isReachableViaWiFi called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags = 0; - NetworkStatus status = kNotReachable; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - - logReachabilityFlags(flags); - - status = [self networkStatusForFlags: flags]; - - return (kReachableViaWiFi == status); - - } - - return NO; - -} // isReachableViaWiFi - - -- (SCNetworkReachabilityFlags) reachabilityFlags { - - NSAssert(reachabilityRef, @"reachabilityFlags called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags = 0; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - - logReachabilityFlags(flags); - - return flags; - - } - - return 0; - -} // reachabilityFlags - - -#pragma mark - -#pragma mark Apple's Network Flag Handling Methods - - -#if !USE_DDG_EXTENSIONS -/* - * - * Apple's Network Status testing code. - * The only changes that have been made are to use the new logReachabilityFlags macro and - * test for local WiFi via the key instead of Apple's boolean. Also, Apple's code was for v3.0 only - * iPhone OS. v2.2.1 and earlier conditional compiling is turned on. Hence, to mirror Apple's behavior, - * set your Base SDK to v3.0 or higher. - * - */ +#pragma mark - Network Flag Handling -- (NetworkStatus) localWiFiStatusForFlags: (SCNetworkReachabilityFlags) flags +- (NetworkStatus)localWiFiStatusForFlags:(SCNetworkReachabilityFlags)flags { - logReachabilityFlags(flags); - - BOOL retVal = NotReachable; - if((flags & kSCNetworkReachabilityFlagsReachable) && (flags & kSCNetworkReachabilityFlagsIsDirect)) - { - retVal = ReachableViaWiFi; - } - return retVal; + PrintReachabilityFlags(flags, "localWiFiStatusForFlags"); + NetworkStatus returnValue = NotReachable; + + if ((flags & kSCNetworkReachabilityFlagsReachable) && (flags & kSCNetworkReachabilityFlagsIsDirect)) + { + returnValue = ReachableViaWiFi; + } + + return returnValue; } -- (NetworkStatus) networkStatusForFlags: (SCNetworkReachabilityFlags) flags +- (NetworkStatus)networkStatusForFlags:(SCNetworkReachabilityFlags)flags { - logReachabilityFlags(flags); - if (!(flags & kSCNetworkReachabilityFlagsReachable)) - { - // if target host is not reachable - return NotReachable; - } - - BOOL retVal = NotReachable; - - if (!(flags & kSCNetworkReachabilityFlagsConnectionRequired)) - { - // if target host is reachable and no connection is required - // then we'll assume (for now) that your on Wi-Fi - retVal = ReachableViaWiFi; - } - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 30000) // Apple advises you to use the magic number instead of a symbol. - if ((flags & kSCNetworkReachabilityFlagsConnectionOnDemand) || - (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic)) -#else - if (flags & kSCNetworkReachabilityFlagsConnectionAutomatic) -#endif - { - // ... and the connection is on-demand (or on-traffic) if the - // calling application is using the CFSocketStream or higher APIs - - if (!(flags & kSCNetworkReachabilityFlagsInterventionRequired)) - { - // ... and no [user] intervention is needed - retVal = ReachableViaWiFi; - } - } - - if (flags & kSCNetworkReachabilityFlagsIsWWAN) - { - // ... but WWAN connections are OK if the calling application - // is using the CFNetwork (CFSocketStream?) APIs. - retVal = ReachableViaWWAN; - } - return retVal; + PrintReachabilityFlags(flags, "networkStatusForFlags"); + if ((flags & kSCNetworkReachabilityFlagsReachable) == 0) + { + // The target host is not reachable. + return NotReachable; + } + + NetworkStatus returnValue = NotReachable; + + if ((flags & kSCNetworkReachabilityFlagsConnectionRequired) == 0) + { + /* + If the target host is reachable and no connection is required then we'll assume (for now) that you're on Wi-Fi... + */ + returnValue = ReachableViaWiFi; + } + + if ((((flags & kSCNetworkReachabilityFlagsConnectionOnDemand ) != 0) || + (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) != 0)) + { + /* + ... and the connection is on-demand (or on-traffic) if the calling application is using the CFSocketStream or higher APIs... + */ + + if ((flags & kSCNetworkReachabilityFlagsInterventionRequired) == 0) + { + /* + ... and no [user] intervention is needed... + */ + returnValue = ReachableViaWiFi; + } + } + + if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN) + { + /* + ... but WWAN connections are OK if the calling application is using the CFNetwork APIs. + */ + returnValue = ReachableViaWWAN; + } + + return returnValue; } -- (NetworkStatus) currentReachabilityStatus +- (BOOL)connectionRequired { - NSAssert(reachabilityRef, @"currentReachabilityStatus called with NULL reachabilityRef"); - - NetworkStatus retVal = NotReachable; - SCNetworkReachabilityFlags flags; - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) - { - if(self.key == kLocalWiFiConnection) - { - retVal = [self localWiFiStatusForFlags: flags]; - } - else - { - retVal = [self networkStatusForFlags: flags]; - } - } - return retVal; + NSAssert(_reachabilityRef != NULL, @"connectionRequired called with NULL reachabilityRef"); + SCNetworkReachabilityFlags flags; + + if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags)) + { + return (flags & kSCNetworkReachabilityFlagsConnectionRequired); + } + + return NO; } -- (BOOL) isReachable { - - NSAssert(reachabilityRef, @"isReachable called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags = 0; - NetworkStatus status = kNotReachable; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - - logReachabilityFlags(flags); - - if(self.key == kLocalWiFiConnection) { - - status = [self localWiFiStatusForFlags: flags]; - - } else { - - status = [self networkStatusForFlags: flags]; - - } - - return (kNotReachable != status); - - } - - return NO; - -} // isReachable - - -- (BOOL) isConnectionRequired { - - return [self connectionRequired]; - -} // isConnectionRequired - - -- (BOOL) connectionRequired { - - NSAssert(reachabilityRef, @"connectionRequired called with NULL reachabilityRef"); - - SCNetworkReachabilityFlags flags; - - if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags)) { - - logReachabilityFlags(flags); - - return (flags & kSCNetworkReachabilityFlagsConnectionRequired); - - } - - return NO; - -} // connectionRequired -#endif +- (NetworkStatus)currentReachabilityStatus +{ + NSAssert(_reachabilityRef != NULL, @"currentNetworkStatus called with NULL SCNetworkReachabilityRef"); + NetworkStatus returnValue = NotReachable; + SCNetworkReachabilityFlags flags; + + if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags)) + { + if (_alwaysReturnLocalWiFiStatus) + { + returnValue = [self localWiFiStatusForFlags:flags]; + } + else + { + returnValue = [self networkStatusForFlags:flags]; + } + } + + return returnValue; +} + -@end +@end \ No newline at end of file From b79a57cc9a27d45bbc52a01b2fd208324d54d626 Mon Sep 17 00:00:00 2001 From: rbbtsn0w Date: Fri, 6 Feb 2015 23:55:26 +0800 Subject: [PATCH 13/13] delete workspace --- .../contents.xcworkspacedata | 10 ----- .../xcshareddata/asi-http-request.xccheckout | 41 ------------------ .../UserInterfaceState.xcuserstate | Bin 30947 -> 0 bytes .../WorkspaceSettings.xcsettings | 10 ----- 4 files changed, 61 deletions(-) delete mode 100644 asi-http-request.xcworkspace/contents.xcworkspacedata delete mode 100644 asi-http-request.xcworkspace/xcshareddata/asi-http-request.xccheckout delete mode 100644 asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/WorkspaceSettings.xcsettings diff --git a/asi-http-request.xcworkspace/contents.xcworkspacedata b/asi-http-request.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 49545b59..00000000 --- a/asi-http-request.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/asi-http-request.xcworkspace/xcshareddata/asi-http-request.xccheckout b/asi-http-request.xcworkspace/xcshareddata/asi-http-request.xccheckout deleted file mode 100644 index 60b854b9..00000000 --- a/asi-http-request.xcworkspace/xcshareddata/asi-http-request.xccheckout +++ /dev/null @@ -1,41 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - A56C7EB7-EEB1-4FDD-89D2-989C8BD962D9 - IDESourceControlProjectName - asi-http-request - IDESourceControlProjectOriginsDictionary - - FAF40D7FD305BB7D5BE5F87AE969BD7D31922D57 - http://git.oa.com/snowywu/asi-http-request.git - - IDESourceControlProjectPath - asi-http-request.xcworkspace - IDESourceControlProjectRelativeInstallPathDictionary - - FAF40D7FD305BB7D5BE5F87AE969BD7D31922D57 - .. - - IDESourceControlProjectURL - http://git.oa.com/snowywu/asi-http-request.git - IDESourceControlProjectVersion - 111 - IDESourceControlProjectWCCIdentifier - FAF40D7FD305BB7D5BE5F87AE969BD7D31922D57 - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - FAF40D7FD305BB7D5BE5F87AE969BD7D31922D57 - IDESourceControlWCCName - asi-http-request - - - - diff --git a/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate b/asi-http-request.xcworkspace/xcuserdata/rbbtsn0w.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 5c06f79a5dbb412397fa393262010722800b11bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30947 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 - - - - HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges - - SnapshotAutomaticallyBeforeSignificantChanges - - -