A collection of practical IOS methods (i)

Source: Internet
Author: User
<span id="Label3"></p><p><p>In code programming, we often use a variety of small methods<br>Here are some of the summaries: (non-timed increments)</p></p>16 Binary Set Color<pre class="prettyprint"><code class=" hljs objectivec">-(instancetype) Colorfromhexstring: (<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*) hexstring Alpha: (<span class="hljs-built_in"><span class="hljs-built_in">CGFloat</span></span>) alpha{<span class="hljs-keyword"><span class="hljs-keyword">unsigned</span></span>Rgbvalue =<span class="hljs-number"><span class="hljs-number">0</span></span>; hexstring = [hexstring stringbyreplacingoccurrencesofstring:@<span class="hljs-string"><span class="hljs-string">"#"</span></span>withstring:@<span class="hljs-string"><span class="hljs-string">""</span></span>]; Nsscanner *scanner = [nsscanner scannerwithstring:hexstring]; [scanner scanhexint:&rgbvalue];<span class="hljs-keyword"><span class="hljs-keyword">return</span></span>[[<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>class] colorwithr: ((rgbvalue &<span class="hljs-number"><span class="hljs-number">0xFF0000</span></span>) >><span class="hljs-number"><span class="hljs-number"></span> -</span>) G: ((rgbvalue &<span class="hljs-number"><span class="hljs-number">0xff00</span></span>) >><span class="hljs-number"><span class="hljs-number">8</span></span>) B: (rgbvalue &<span class="hljs-number"><span class="hljs-number">0xFF</span></span>) a:alpha];}<span class="hljs-comment"><span class="hljs-comment">//based on the returned 16 binary data directly with "#" assignment (there is no @ "#" will not affect the Value)</span></span>-(instancetype) Colorfromhexstring: (<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*) hexstring{<span class="hljs-keyword"><span class="hljs-keyword">return</span></span>[<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>Colorfromhexstring:hexstring Alpha:<span class="hljs-number"><span class="hljs-number">1.0</span></span>];}</code></pre>Set the length of text display, the extra part has ... Omitted<pre class="prettyprint"><pre class="prettyprint"><code class="hljs objectivec">-(<span class="hljs-built_in">nsstring </span> *) Stringbytruncatewithlength: (<span class="hljs-built_in">nsinteger </span>) length{<span class="hljs-keyword">if </span> (<span class="hljs-keyword">self </span> <span class="hljs-variable">.length </span> > Length) {<span class="hljs-built_in">nsmutablestring </span> *mstr = [<span class="hljs-built_in">nsmutablestring </span> Stringwithstring:<span class="hljs-keyword">self </span>]; [mstr deletecharactersinrange:nsmakerange (length-<span class="hljs-number">3 </span>, MSTR <span class="hljs-variable">.length </span>-length+<span class="hljs-number">3 </span>)]; <span class="hljs-comment">//setting display text length </span> [mstr appendstring:@<span class="hljs-string" "..." < span>]; <span class="hljs-keyword">return </span> mstr; } <span class="hljs-keyword">else </span> <span class="hljs-keyword">return </span> <span class="hljs-keyword">sel F </span>;} </span></code> </pre></pre>Monitoring of network status<pre class="prettyprint"><code class=" hljs objectivec">-(<span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>) networkavailable{<span class="hljs-comment"><span class="hljs-comment">//create 0 address, 0.0.0.0 address indicates the network connection status of the query native</span></span> <span class="hljs-keyword"><span class="hljs-keyword">struct</span></span>Sockaddr_in zeroaddress; Bzero (&zeroaddress,<span class="hljs-keyword"><span class="hljs-keyword">sizeof</span></span>(zeroaddress)); Zeroaddress<span class="hljs-variable"><span class="hljs-variable">. Sin_len</span></span>=<span class="hljs-keyword"><span class="hljs-keyword">sizeof</span></span>(zeroaddress); Zeroaddress<span class="hljs-variable"><span class="hljs-variable">. sin_family</span></span>= af_inet;<span class="hljs-comment"><span class="hljs-comment">//Recover reachability Flags</span></span>Scnetworkreachabilityref defaultroutereachability = scnetworkreachabilitycreatewithaddress (<span class="hljs-literal"><span class="hljs-literal">NULL</span></span>, (<span class="hljs-keyword"><span class="hljs-keyword">struct</span></span>SOCKADDR *) &zeroaddress); Scnetworkreachabilityflags flags;<span class="hljs-comment"><span class="hljs-comment">//get The sign of the connection</span></span> <span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>Didretrieveflags = Scnetworkreachabilitygetflags (defaultroutereachability, &flags); Cfrelease (defaultroutereachability);<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(!didretrieveflags) {<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> <span class="hljs-literal"><span class="hljs-literal">NO</span></span>; }<span class="hljs-comment"><span class="hljs-comment">//judging According to the connection mark obtained</span></span> <span class="hljs-comment"><span class="hljs-comment">//scnetworkreachabilityflags: Save the returned test connection status</span></span> <span class="hljs-comment"><span class="hljs-comment">//the commonly used statuses are:</span></span> <span class="hljs-comment"><span class="hljs-comment">//kscnetworkreachabilityflagsreachable: able to connect to network</span></span> <span class="hljs-comment"><span class="hljs-comment">//kscnetworkreachabilityflagsconnectionrequired: able to connect to the network, but first to establish the connection process</span></span> <span class="hljs-comment"><span class="hljs-comment">//kscnetworkreachabilityflagsiswwan: Determine if the connection is covered by a cellular network, such as Edge,gprs or the current 3G. the main difference is the connection via WiFi</span></span> <span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>Isreachable = Flags & kscnetworkflagsreachable;<span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>Needsconnection = Flags & kscnetworkflagsconnectionrequired;<span class="hljs-keyword"><span class="hljs-keyword">return</span></span>(isreachable &&!needsconnection)?<span class="hljs-literal"><span class="hljs-literal">YES</span></span>:<span class="hljs-literal"><span class="hljs-literal">NO</span></span>;}</code></pre><p><p>#md5 Method Encryption</p></p><pre class="prettyprint"><code class=" hljs applescript">-(nsstring*) md5withstring: (nsstring *) str{const char *cstr = [str utf8string]; unsigned char<span class="hljs-constant"><span class="hljs-constant">result</span></span>[cc_md5_digest_length]; CC_MD5 (cStr, (cc_long) strlen (cStr),<span class="hljs-constant"><span class="hljs-constant">result</span></span>);<span class="hljs-command"><span class="hljs-command">return</span></span>[[nsstring stringwithformat:@<span class="hljs-string"><span class="hljs-string">"xxxxxxxxxxxxxxxx"</span></span>,<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">0</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">1</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">2</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">3</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">4</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">5</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">6</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">7</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">8</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">9</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number">Ten</span></span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number"></span> one</span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number"></span> a</span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number"></span> -</span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number"></span> -</span>],<span class="hljs-constant"><span class="hljs-constant">result</span></span>[<span class="hljs-number"><span class="hljs-number"></span> the</span>]] [lowercasestring];}</code></pre>Get the native IP address<pre class="prettyprint"><code class=" hljs objectivec">-(<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*) localip{<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*address = @<span class="hljs-string"><span class="hljs-string">"error"</span></span>;<span class="hljs-keyword"><span class="hljs-keyword">struct</span></span>Ifaddrs *interfaces =<span class="hljs-literal"><span class="hljs-literal">NULL</span></span>;<span class="hljs-keyword"><span class="hljs-keyword">struct</span></span>Ifaddrs *temp_addr =<span class="hljs-literal"><span class="hljs-literal">NULL</span></span>;<span class="hljs-keyword"><span class="hljs-keyword">int</span></span>Success =<span class="hljs-number"><span class="hljs-number">0</span></span>;<span class="hljs-comment"><span class="hljs-comment">//retrieve The current interfaces-returns 0 on success</span></span>Success = Getifaddrs (&interfaces);<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(success = =<span class="hljs-number"><span class="hljs-number">0</span></span>) {<span class="hljs-comment"><span class="hljs-comment">//Loop through linked list of interfaces</span></span>TEMP_ADDR = interfaces;<span class="hljs-keyword"><span class="hljs-keyword"></span> while</span>(temp_addr! =<span class="hljs-literal"><span class="hljs-literal">NULL</span></span>) {<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(temp_addr->ifa_addr->sa_family = = Af_inet) {<span class="hljs-comment"><span class="hljs-comment">//Check If interface is En0 which are the WiFi connection</span> on the IPhone</span> <span class="hljs-keyword"><span class="hljs-keyword">if</span></span>([[<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>stringwithutf8string:temp_addr->ifa_name] isequaltostring:@<span class="hljs-string"><span class="hljs-string">"en0"</span></span>]) {<span class="hljs-comment"><span class="hljs-comment">//Get nsstring from C String</span></span>address = [<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>Stringwithutf8string:inet_ntoa ((<span class="hljs-keyword"><span class="hljs-keyword">struct</span></span>Sockaddr_in *) (temp_addr->ifa_addr)->sin_addr)]; }} temp_addr = temp_addr->ifa_next; } }<span class="hljs-comment"><span class="hljs-comment">//free Memory</span></span>Freeifaddrs (interfaces);<span class="hljs-keyword"><span class="hljs-keyword">return</span></span>address;}</code></pre>Check mobile number verification in several string formats<pre class="prettyprint"><code class=" hljs objectivec">-(<span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>) Validatephonenumber: (<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*) phonenumber{<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(phonenumber<span class="hljs-variable"><span class="hljs-variable">. Length</span></span>==<span class="hljs-number"><span class="hljs-number">0</span></span>|| PhoneNumber<span class="hljs-variable"><span class="hljs-variable">. Length</span></span>!=<span class="hljs-number"><span class="hljs-number"></span> one</span>)<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> <span class="hljs-literal"><span class="hljs-literal">NO</span></span>;<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*regex = @<span class="hljs-string"><span class="hljs-string">"^ ((13[0-9)) | ( 147) | (145) | (15[0-9]) | (17[0-9]) | (18[0-9])) \\d{8}$ "</span></span>; Nspredicate *pred = [nspredicate predicatewithformat:@<span class="hljs-string"><span class="hljs-string">"self MATCHES%@"</span></span>, regex];<span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>IsMatch = [pred evaluatewithobject:phonenumber];<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(!ismatch) {<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> <span class="hljs-literal"><span class="hljs-literal">NO</span></span>; }<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> <span class="hljs-literal"><span class="hljs-literal">YES</span></span>;}</code></pre>English character and digital mixed check (commonly used for password Checking)<pre class="prettyprint"><code class=" hljs objectivec">-(<span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>) Validatepassword: (<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*) password{<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(password<span class="hljs-variable"><span class="hljs-variable">. Length</span></span><<span class="hljs-number"><span class="hljs-number">8</span></span>><span class="hljs-number"><span class="hljs-number"></span> -</span>) {<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> <span class="hljs-literal"><span class="hljs-literal">NO</span></span>; }<span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>Numberresult =<span class="hljs-literal"><span class="hljs-literal">NO</span></span>;<span class="hljs-built_in"><span class="hljs-built_in">BOOL</span></span>Letterresult =<span class="hljs-literal"><span class="hljs-literal">NO</span></span>;<span class="hljs-keyword"><span class="hljs-keyword"></span> for</span>(<span class="hljs-keyword"><span class="hljs-keyword">int</span></span>i =<span class="hljs-number"><span class="hljs-number">0</span></span>; I<password xss=removed>=<span class="hljs-number"><span class="hljs-number"></span> -</span>&& character <=<span class="hljs-number"><span class="hljs-number"></span> $</span>) && Numberresult = =<span class="hljs-literal"><span class="hljs-literal">NO</span></span>) {numberresult =<span class="hljs-literal"><span class="hljs-literal">YES</span></span>; }<span class="hljs-comment"><span class="hljs-comment">//a~z a~z</span></span> <span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(((character >=<span class="hljs-number"><span class="hljs-number"></span> $</span>&& character <=<span class="hljs-number"><span class="hljs-number"></span> -</span>) || (character >=<span class="hljs-number"><span class="hljs-number"></span> the</span>&& character <=<span class="hljs-number"><span class="hljs-number">122</span></span>)) && Letterresult = =<span class="hljs-literal"><span class="hljs-literal">NO</span></span>) {letterresult =<span class="hljs-literal"><span class="hljs-literal">YES</span></span>; }<span class="hljs-keyword"><span class="hljs-keyword">if</span></span>(numberresult = =<span class="hljs-literal"><span class="hljs-literal">YES</span></span>&& Letterresult = =<span class="hljs-literal"><span class="hljs-literal">YES</span></span>) {<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> <span class="hljs-literal"><span class="hljs-literal">YES</span></span>; } }<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> <span class="hljs-literal"><span class="hljs-literal">NO</span></span>;}</code></pre>Mailbox Check<pre class="prettyprint"><pre class="prettyprint"><code class=" hljs objectivec">+(<span class="hljs-built_in">BOOL</span>)validateEmailAddress:(<span class="hljs-built_in">NSString</span>*)emailAddress{ <span class="hljs-built_in">NSString</span> *emailRegex = @<span class="hljs-string">"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"</span>; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@<span class="hljs-string">"SELF MATCHES%@"</span>,emailRegex]; <span class="hljs-keyword">return</span> [emailTest evaluateWithObject:emailAddress];}</code></pre></pre>Post upload Multiple files<p><p>Post upload data</p></p><pre class="prettyprint"><code class=" hljs objectivec">-(<span class="hljs-keyword"><span class="hljs-keyword">void</span></span>) Sendpostrequestwithfiletourl: (<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*) Apiname Parameters: (<span class="hljs-built_in"><span class="hljs-built_in">nsdictionary</span></span>*) params filepathname: (<span class="hljs-built_in"><span class="hljs-built_in">Nsarray</span></span>*) Filepathname Paramtername: (<span class="hljs-built_in"><span class="hljs-built_in">Nsarray</span></span>*) names MimeType: (<span class="hljs-built_in"><span class="hljs-built_in">Nsarray</span></span>*) MimeType {afhttprequestoperationmanager * manager = [afhttprequestoperationmanager manager]; Manager<span class="hljs-variable"><span class="hljs-variable">. Requestserializer</span></span><span class="hljs-variable"><span class="hljs-variable">. timeOutInterval</span></span>=<span class="hljs-number"><span class="hljs-number">.</span></span>F<span class="hljs-built_in"><span class="hljs-built_in">NSString</span></span>*apiurl = [<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>urlstringwithapi:apiname];<span class="hljs-built_in"><span class="hljs-built_in">nsdictionary</span></span>*finalparams = [<span class="hljs-keyword"><span class="hljs-keyword"></span> self</span>dictionarybyaddingcommonparameters:params]; Afhttprequestoperation *operation = [manager post:apiurl parameters:finalparams constructingbodywithblock:^ (<span class="hljs-keyword"><span class="hljs-keyword">ID</span></span><AFMultipartFormData> FormData) {<span class="hljs-keyword"><span class="hljs-keyword"></span> for</span>(<span class="hljs-keyword"><span class="hljs-keyword">int</span></span>i =<span class="hljs-number"><span class="hljs-number">0</span></span>; i&lt;filepathname<span class="hljs-variable"><span class="hljs-variable">. Count</span></span>; I++) {nsdata *data = [nsdata datawithcontentsoffile:filepathname[i]]; [formData appendpartwithfiledata:data name:names[i] filename:[filepathname[i] lastpathcomponent] mimeType:mimeType[ i]]; }} success:^ (afhttprequestoperation * operation,<span class="hljs-keyword"><span class="hljs-keyword">ID</span></span>Responseobject) {failure:^ (afhttprequestoperation * operatioon,<span class="hljs-built_in"><span class="hljs-built_in">Nserror</span></span>* Error) {}</code></pre>Dictionary conversion to JSON binary data stream<pre class="prettyprint"><pre class="prettyprint"><code class=" hljs lua"><span class="hljs-built_in">error</span>:<span class="hljs-keyword">nil</span>];</code></pre></pre>"not to be continued"<p><p>A collection of practical IOS methods (i)</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.