tag:blogger.com,1999:blog-13835885073172760342024-03-05T21:32:54.753-08:00justWorksArun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-1383588507317276034.post-59098304396569862472016-03-30T06:06:00.001-07:002016-03-30T06:06:10.477-07:00How to change the color or font style of a word or a character within a single UILabel?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<span class="s1">In iOS, usually while displaying a heading or topic name or any sort of text within our app, we generally assign our string to a UILabel. </span></div>
<div class="p1">
<span class="s1">But suppose what if, If we have a requirement like if you want to highlight a particular word or letter in between a single string or what if you want to change color of a specific character or a word in between a string?</span></div>
<div class="p1">
<span class="s1">Do you add multiple UILabel's to achieve this?, Isn't that sounds weird? of-course right :), so what is the best approach to achieve this then?</span></div>
<div class="p1">
<span class="s1">Here is a solution, by using <b><span style="color: red;">NSMutableAttributedString</span></b> you can achieve this just by using one single UILabel.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">In the below example I have created a <b><i>category</i></b> method for <i><b>NSMutableAttributedString</b></i>, since the scope of this highlighting method will be existing throughout my application, if you need this in only one place then go and create an instance method within your implementation class, its up to you.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<br />
<div class="p1">
<span class="s1">My NSMutableAttributedString category method is like below,</span></div>
<div class="p1">
<span class="s1"><span style="color: blue;">- (void)highlightText:(NSString *)highlightString withFont:(UIFont *)font andColor:(UIColor *)color</span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;">{</span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;"> NSRange range = [self.mutableString rangeOfString:highlightString options:NSCaseInsensitiveSearch];</span></span></div>
<div class="p2">
<span class="s1"><span style="color: blue;"> </span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;"> if (range.location != NSNotFound)</span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;"> {</span></span></div>
<div class="p1">
<span class="s1"><span style="color: red;"> [self addAttribute:NSFontAttributeName value:font range:range];</span></span></div>
<div class="p1">
<span class="s1"><span style="color: red;"> [self addAttribute:NSForegroundColorAttributeName value:color range:range];</span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;"> }</span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;">
</span></span></div>
<div class="p1">
<span class="s1"><span style="color: blue;">}</span></span></div>
<div class="p1">
<span class="s1">and in my calling class I can just call this category method and pass the specific word or letter which needs to be highlighted to this method with required style and color as a parameters and my job is done.</span></div>
<div class="p1">
<span class="s1">Here in the below example, I am highlighting “iOS” and “Apple” word in my string with different font style and color, so my calling class code snippet is like below,</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p3">
<span class="s1"><span style="color: blue;">NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:</span><span style="color: red;">@"iOS is Apple's mobile OS"</span><span style="color: blue;">];</span></span></div>
<div class="p3">
<span class="s1"><span style="color: #38761d;"> [attributedString highlightText:</span><span style="color: red;">@"iOS" </span><span style="color: #38761d;">withFont:[UIFont fontWithName:</span><span style="color: red;">@"AmericanTypewriter-Bold"</span><span style="color: #38761d;"> size:</span><span style="color: red;">25.0</span><span style="color: #38761d;">] andColor:</span><span style="color: red;">[UIColor redColor]</span><span style="color: #38761d;">];</span></span></div>
<div class="p3">
<span class="s1"><span style="color: #38761d;"> [attributedString highlightText:</span><span style="color: red;">@"Apple"</span><span style="color: #38761d;"> withFont:[UIFont fontWithName:</span><span style="color: red;">@"Georgia"</span><span style="color: #38761d;"> size:</span><span style="color: red;">35.0</span><span style="color: #38761d;">] andColor:</span><span style="color: red;">[UIColor </span></span><span style="color: red;">greenColor]</span><span style="color: #38761d;">];</span></div>
<div class="p3">
<span class="s1"><span style="color: blue;"> _attributedLabel.attributedText = </span><span style="color: #cc0000;">attributedString</span><span style="color: blue;">;</span></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p3">
<span class="s1">and the output of this is as below,</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcTuqkRQqEWsmGkxoVS3OJSZ574Cbwb8naN3Qw66CrY3yu1DjTSA_4HskvulGtZSezlhjwLx7bQgj6Hoy3hgFe0nmo5P7KcLe9ZyoQ6_iPtBGbeMxb6uFuLntLBFP0a7DYMZhAJ_322Vd-/s1600/NSAttributedTextScreenShot.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcTuqkRQqEWsmGkxoVS3OJSZ574Cbwb8naN3Qw66CrY3yu1DjTSA_4HskvulGtZSezlhjwLx7bQgj6Hoy3hgFe0nmo5P7KcLe9ZyoQ6_iPtBGbeMxb6uFuLntLBFP0a7DYMZhAJ_322Vd-/s400/NSAttributedTextScreenShot.png" width="242" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Reference screenshot for NSAttributedString</td></tr>
</tbody></table>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p3">
<span class="s1">For more information on this refer Apple's official documentation here,</span></div>
<div class="p3">
<span class="s2"><a href="https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/index.html#//apple_ref/occ/cl/NSAttributedString">https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/index.html#//apple_ref/occ/cl/NSAttributedString</a></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
</div>
<div class="p3">
<span class="s1">Hope this post is helpful, any comments or suggestions are acceptable.</span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com4tag:blogger.com,1999:blog-1383588507317276034.post-76537664783353668642015-08-28T06:16:00.000-07:002015-08-28T06:16:28.714-07:00Whats new in iOS 9<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<span class="s1"></span></div>
<div class="p1">
<span class="s1">In this article I will cover some of the major features and functionalities of iOS 9 and what are the main aspects we should keep in mind so as to make our apps iOS 9 compatible one.</span></div>
<div>
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">Existing apps will function normally in iOS 9, Ideally Apple will take care of it; which is nothing but “Forward Compatibility”, as it was managing this before in its earlier version releases.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">If you want to release an update of your existing app or you are going to release a brand new iOS app, in which you wish to make use of iOS 9 features and make your app compatible with iOS 9 then you need to take care of few stuffs, </span></div>
<div class="p2">
<br />
<span class="s1"></span></div>
<div class="p1">
<span class="s2"><b>Prerequisites for iOS 9</b></span><span class="s1">: <b><span style="color: #cc0000;">Xcode 7</span></b>; iOS 9 SDK is compatible with Xcode 7, So the first and foremost thing any one wants to do is download Xcode 7 from <span style="color: blue;"><a href="http://developer.apple.com/" target="_blank">developer.apple.com</a><a href="http://developer.apple.com/" target="_blank"> </a></span>and start using iOS 9.0 SDK.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">Before going in to details here is a quick snapshot on crucial points on iOS 9.0,</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">- Multitasking Enhancements for iPad</span></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">- App Transport Security(Adopt/Migrate your web-services to HTTPS asap)</span></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">- App Thinning</span></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">- Search</span></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">- Support for Right-to-Left Languages</span></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">- Contacts and Contacts UI</span></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">- UI Testing in Xcode 7</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1"><span style="color: #cc0000;">1) </span><b><u><span style="color: #cc0000;">Multitasking Enhancements for iPad:</span></u></b></span></div>
<div class="p2">
<span class="s1"><span class="Apple-tab-span"> </span></span></div>
<div class="p1">
<span class="s1">iOS 9 enhances the user’s multitasking experience on iPad with <b><span style="color: #45818e;">Slide Over, Split View, and Picture in Picture</span></b>. </span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">- The <b>Slide Over(</b>below is the reference image<b>)</b> feature lets users pick a secondary app and quickly interact with it.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhByl7lz6XjtcEC9BFQ9zHUyw3jNt_nqTWvdzAXMHm26WdN9R8WfmdJmxe1aASxPfWw4TTy1bsbwhp2XFURHVs7IHc3rpITRnjbQMB7_8oPDSfWNQkNgfcKefOU3MIw5YHDp4uXMtQjC1Zi/s1600/SlideOver.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="317" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhByl7lz6XjtcEC9BFQ9zHUyw3jNt_nqTWvdzAXMHm26WdN9R8WfmdJmxe1aASxPfWw4TTy1bsbwhp2XFURHVs7IHc3rpITRnjbQMB7_8oPDSfWNQkNgfcKefOU3MIw5YHDp4uXMtQjC1Zi/s400/SlideOver.png" width="400" /></a></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">- The <b>Split View(</b></span>below is the reference image<b>)</b> feature gives users the ability to use two apps side by side on iPad, both the apps were responsive for user interaction and will run in parallel. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVIbLiv8NvVW4_79Kf6MNIRnH676TSpmp2KSsSitwzuPzg69grUvkjixk-AcVu2N8x_XeVyR54s3fXrQuBh6UCvwGKZHiY9iGPjPdWC0wDuBQNojvPieb5s9iqlrYDbJ4c_y86RFGqGVvh/s1600/SideBySide.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="317" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVIbLiv8NvVW4_79Kf6MNIRnH676TSpmp2KSsSitwzuPzg69grUvkjixk-AcVu2N8x_XeVyR54s3fXrQuBh6UCvwGKZHiY9iGPjPdWC0wDuBQNojvPieb5s9iqlrYDbJ4c_y86RFGqGVvh/s400/SideBySide.png" width="400" /></a></div>
<div class="p1">
<br /></div>
<div class="p1">
<br /></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">- The <b>Picture in Picture</b> feature (also known as PiP - </span>below is the reference image) lets users watch video in a window that floats above other onscreen apps.</div>
<div class="p1">
<span class="s1" style="color: #674ea7;">Picture in Picture feature is for apps whose primary role is video playback.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx4HZp3NrirDicO43_aG97W_0rJFFON7FApcUkpi10uWccLO-gvMh5V1N0Up4QZm5EMH6mXVu-ItsP-vjoC7rgcGDawYhm-sPEKDt-Oj_hEKA20oS4Kjr3sPpOAT87O1m8_pEoQ_kRI1HT/s1600/multitasking-picture-in-picture_2x.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx4HZp3NrirDicO43_aG97W_0rJFFON7FApcUkpi10uWccLO-gvMh5V1N0Up4QZm5EMH6mXVu-ItsP-vjoC7rgcGDawYhm-sPEKDt-Oj_hEKA20oS4Kjr3sPpOAT87O1m8_pEoQ_kRI1HT/s400/multitasking-picture-in-picture_2x.jpg" width="400" /></a></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1"><span style="color: #a64d79;">Apple recommends for existing apps to adopt multitasking enhancements of iOS9 on iPad</span>,If you are releasing any new iPad app or releasing an update for the existing app, Its better that if you adapt your apps for multitasking since users will be expecting all apps with Slide Over, Split View, and Picture in Picture features of iOS 9.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1"><b>Note:</b> For apps which you are planning to support multitasking enhancements make sure that you are supporting <span style="color: red;">all the interface orientation</span>.”</span><span class="s4"> </span><span class="s1">You need to explicitly add the </span><span class="s5" style="color: red;"><b>UIRequiresFullScreen</b></span><span class="s1"> key to our Xcode project’s Info.plist file and apply the Boolean value </span><span class="s5"><b><span style="color: red;">YES</span> </b></span><span class="s1">from next update/new release.”</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span class="s1">- <span style="color: #cc0000;">SplitView</span> functionality will work <span style="color: #cc0000;">only from iPad Air 2 and above</span></span>(with upcoming iPad devices).</div>
<div class="p2">
<span class="s1"></span>- <span style="color: #cc0000;">SlideOver</span> and <span style="color: #cc0000;">Picture in Picture</span> functionality will work on<span style="color: #cc0000;"> iPad Mini 2,iPad Mini 3,iPad Air,iPad Air 2 (and with upcoming iPad devices).</span></div>
<div class="p2">
<br /></div>
<div class="p1">
<span class="s2"><b>Reference for Implementation:</b></span></div>
<div class="p3">
<span class="s6">a) <a href="https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html</span></a></span><br />
<span class="s6"><br /></span>
<span class="s6">b) <a href="https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/QuickStartForSlideOverAndSplitView.html#//apple_ref/doc/uid/TP40015145-CH13-SW1" target="_blank"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/QuickStartForSlideOverAndSplitView.html#//apple_ref/doc/uid/TP40015145-CH13-SW1</span></a></span></div>
<div class="p3">
<br /></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">2) <b>App Transport Security</b></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">App Transport Security is a feature that requires <span style="color: #a64d79;">secure connections between an app and web services. </span></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p4">
<span class="s6">Here is a note from Apple mentioned on developer site: </span><span class="s1" style="color: #cc0000;"><b><i>“You should adopt ATS as soon as possible, regardless of whether you’re creating a new app or updating an existing one.”</i></b></span></div>
<div class="p5">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">“If you’re developing a new app, you should use HTTPS exclusively. If you have an existing app, you should use HTTPS as much as you can right now, and create a plan for migrating the rest of your app as soon as possible. In addition, your communication through higher-level APIs needs to be encrypted using TLS version 1.2 with forward secrecy. If you try to make a connection that doesn't follow this requirement, an error is thrown. If your app needs to make a request to an insecure domain, you have to specify this domain in your app's Info.plist file.”</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s2"><b>Reference for Implementation:</b></span></div>
<div class="p3">
<span class="s2"><a href="https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html</span></a><span class="s7"></span></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">So go ahead instantly and migrate your web-services to HTTPS, if you are developing new services then by default opt for HTTPS services.</span><br />
<span class="s1"><br /></span>
<span class="s1">For a temporary fix or to bypass App Transport Security in your app, refer <a href="http://just-works.blogspot.in/2015/08/how-to-make-http-services-work-on-ios-9.html"><span style="color: blue;">http://just-works.blogspot.in/2015/08/how-to-make-http-services-work-on-ios-9.html</span></a></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">3) <b>App Thinning</b></span></div>
<div class="p2">
<span class="s1"><b></b></span><br /></div>
<div class="p1">
<span class="s1" style="color: #a64d79;">The App Store and operating system optimize the installation of iOS apps by tailoring app delivery to the capabilities of the user’s particular device, with minimal footprint. This optimization, called app thinning.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">If you adopt App thinning within your apps, then apps will occupy <span style="color: #674ea7;">minimum disk space, faster downloads</span> from App store.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">App Thinning includes three components: </span><span class="s8"><span style="color: red;">slicing</span>, <span style="color: red;">bitcode</span></span><span class="s1">, and<span style="color: red;"> </span></span><span class="s8" style="color: red;">on-demand resources</span><span class="s1">.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">- In general <b><span style="color: red;">Slicing</span></b> is recommended as a best practice for every app as-well as developer,</span></div>
<div class="p1">
<span class="s1">Since Slicing will check the user’s iOS device and based on that specific device it will send a specific installation package(<span style="color: #cc0000;">unnecessary resource files will not be included in the package during download process</span>(.ipa))</span></div>
<div class="p1">
<span class="s1">Below is a reference image(pictorial representation) on how App Thinning will work,</span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVLFT3fo65n5WSLKjjZ3oK2uyiuekMzAZpheHii-MiLpnd1nu8b4kZpiC3W7b5TRySZqF0alSeMNg-3AQ0V31OlEqsMmo_DtIUnQ91jEQ9DbZVbPab3PCWIOnt2KnncX9XZoUaKXiOMZTU/s1600/app_thinning_2x.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVLFT3fo65n5WSLKjjZ3oK2uyiuekMzAZpheHii-MiLpnd1nu8b4kZpiC3W7b5TRySZqF0alSeMNg-3AQ0V31OlEqsMmo_DtIUnQ91jEQ9DbZVbPab3PCWIOnt2KnncX9XZoUaKXiOMZTU/s400/app_thinning_2x.png" width="400" /></a></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">- <b><span style="color: red;">Bitcode</span></b> is an <span style="color: #a64d79;">intermediate representation of a compiled program</span>. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode will allow Apple to re-optimize <span style="color: #a64d79;">your app binary in the future without the need to submit a new version of your app to the store</span>.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1"><b>Note</b>: For iOS apps, <span style="color: #cc0000;">bitcode is the default, but optional</span>. If you provide bitcode, all apps and frameworks in the app bundle need to include bitcode. </span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1"><b>- <span style="color: red;">On-demand resources</span> </b>are resources—such as images and sounds—that you can tag with keywords and request in groups, by tag. The App Store hosts the resources on Apple servers and manages the downloads for you. On-demand resources enable faster downloads and smaller app sizes, improving the first-time launch experience. For example, a game app may divide resources into game levels and request the next level of resources only when the app anticipates that the user will move to that level. Similarly, the app can request In-App Purchase resources only when the user buys the corresponding in-app purchase.</span></div>
<div class="p1">
<span class="s1">Below is a reference image(pictorial representation) on how On-demand resources will work,</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv2zCGO2BoJvsFhuKtyau7zWLzvgx52GJaYNNhKa9DdCrg5ND0x0jTvXBRhOLnZGGtrzrrV-yVGhkHsqFbS5CUPFbIqAAVDlaGvd3Ntvl0_GS_Zcfs5kYdOoSNzFrv0ukW7spj2U2vrCgT/s1600/on_demand_resources_2x.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv2zCGO2BoJvsFhuKtyau7zWLzvgx52GJaYNNhKa9DdCrg5ND0x0jTvXBRhOLnZGGtrzrrV-yVGhkHsqFbS5CUPFbIqAAVDlaGvd3Ntvl0_GS_Zcfs5kYdOoSNzFrv0ukW7spj2U2vrCgT/s400/on_demand_resources_2x.png" width="400" /></a></div>
<div class="p2">
<br /></div>
<div class="p1">
<span class="s2"><b>Reference for Implementation:</b></span></div>
<div class="p3">
<a href="https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html" target="_blank"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html</span></a></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">4) <b>Search</b></span></div>
<div class="p2">
<span class="s1"><b></b></span><br /></div>
<div class="p1">
<span class="s1">Search in iOS 9 gives users great new ways to access information inside of your app, even when it isn’t installed. </span></div>
<div class="p1">
<span class="s1">If you adopt iOS 9 Search feature in your apps, it helps you to<span style="color: #a64d79;"> increase the usage of your app and improve its discoverability </span>by displaying the app content(description of the app) when users search across the system and on the web; <span style="color: #a64d79;"><b>even when your app is not installed in users device</b></span>.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s2"><b>Reference for Implementation:</b></span></div>
<div class="p1">
<span class="s1">iOS 9 introduces the following APIs to adopt Search:</span></div>
<div class="p3">
<span class="s6">a) Use NSUserActivity APIs to Make App Activities Searchable. </span><br />
<span class="s6"><a href="https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW2" target="_blank"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW2</span></a></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p3">
<span class="s6">b) Use Core Spotlight APIs to Make App Content Searchable. </span><br />
<span class="s6"><a href="https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW3" target="_blank"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW3</span></a></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p3">
<span class="s6">c) Use Web Markup to Make Web Content Searchable. </span><br />
<span class="s6"><a href="https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW4" target="_blank"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW4</span></a></span></div>
<div class="p1">
<span class="s1"><br /><span style="color: #cc0000;">
5) <b>Support for Right-to-Left Languages</b></span></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1"><span style="color: #a64d79;">iOS 9 brings comprehensive support for right-to-left languages</span>, which makes it easier for you to provide a flipped user interface.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1"><span style="color: #a64d79;">Arabic, Persian, Urdu</span> are few of the examples for Right to Left languages.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s2"><b>Reference for Implementation:</b></span></div>
<div class="p6">
<span class="s2"><a href="https://developer.apple.com/library/prerelease/ios/documentation/MacOSX/Conceptual/BPInternational/SupportingRight-To-LeftLanguages/SupportingRight-To-LeftLanguages.html#//apple_ref/doc/uid/10000171i-CH17"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/documentation/MacOSX/Conceptual/BPInternational/SupportingRight-To-LeftLanguages/SupportingRight-To-LeftLanguages.html#//apple_ref/doc/uid/10000171i-CH17</span></a><span class="s3"></span></span></div>
<div class="p2">
<span class="s2"><b></b></span><br /></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">6) <b>Contacts and Contacts UI</b></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">iOS 9 introduces the Contacts and Contacts UI frameworks (Contacts.framework and ContactsUI.framework), which provide <span style="color: #a64d79;">modern object-oriented replacements for the Address Book and Address Book UI frameworks</span>.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s2"><b>Reference for Implementation:</b></span></div>
<div class="p6">
<span class="s2"><a href="https://developer.apple.com/library/prerelease/ios/documentation/Contacts/Reference/Contacts_Framework/index.html#//apple_ref/doc/uid/TP40015328"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/documentation/Contacts/Reference/Contacts_Framework/index.html#//apple_ref/doc/uid/TP40015328</span></a><span class="s3"></span></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p6">
<span class="s2"><a href="https://developer.apple.com/library/prerelease/ios/documentation/ContactsUI/Reference/ContactsUI_Framework/index.html#//apple_ref/doc/uid/TP40016207"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/documentation/ContactsUI/Reference/ContactsUI_Framework/index.html#//apple_ref/doc/uid/TP40016207</span></a><span class="s3"></span></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1" style="color: #cc0000;">7) <b>UI Testing in Xcode 7</b></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">Find and interact with UI elements, Validate the UI properties and state, UI recording.</span></div>
<div class="p1">
<span class="s1">- Xcode 7 introduces UI testing as a major new feature of the existing <span style="color: red;">XCTest framework</span>.</span></div>
<div class="p1">
<span class="s1">- Now from Xcode 7 and iOS 9 their is a native support for both Unit testing and UI testing.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s2"><b>Reference for Implementation:</b></span></div>
<div class="p3">
<span class="s2"><a href="https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/Introduction.html#//apple_ref/doc/uid/TP40014132"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/Introduction.html#//apple_ref/doc/uid/TP40014132</span></a><span class="s7"></span></span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">Go ahead and explore and make use of this amazing native <span style="color: #a64d79;">UI Automation testing </span>support for your apps from Apples Xcode.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p6">
<span class="s9">For more information & additional new features of iOS 9 refer Apple's official documentation here, <a href="https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html" target="_blank"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html</span></a><span class="s3" style="color: blue;"><u></u></span></span></div>
<div class="p2">
<br />
<span class="s1"></span></div>
<div class="p1">
<span class="s1">Hope this post is helpful, any comments or suggestions are acceptable and appreciated.</span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com1tag:blogger.com,1999:blog-1383588507317276034.post-79404039333439211422015-08-28T06:08:00.000-07:002015-08-28T06:08:58.326-07:00How to make http services work on iOS 9 or how to bypass App Transport Security(ATS) of iOS 9?<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="p1">
<span class="s1">By default in iOS 9 if we try to load an HTTP resource in your app it's actually going to try to load the HTTPS version. If the HTTPS version is using security which Apple considers weak, or the server just doesn't support HTTPS at all, the request will fail.</span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">But as a temporary fix for this without migrating your existing services to https is to add <b>Pre-Domain</b> exceptions to your applications info.plist file as below,</span></div>
<div class="p1">
<span class="s1">
</span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">1) If you know all the insecure domains which you need to use in our app, then go for the below solution,</span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"><key>NSAppTransportSecurity</key></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"><dict></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <key>NSExceptionDomains</key></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <dict></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <key>yourserver.com</key></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <dict></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <!--Include to allow subdomains--></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <key>NSIncludesSubdomains</key></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <true/></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <!--Include to allow HTTP requests--></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <true/></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <!--Include to specify minimum TLS version--></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <key>NSTemporaryExceptionMinimumTLSVersion</key></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <string>TLSv1.1</string></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> </dict></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> </dict></span></span></div>
<div class="p1">
<span style="color: purple;"><span class="s1"></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"></dict></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"><br /></span></span></div>
<div class="p1">
<span class="s1">2) If you </span>don’t know all the insecure domains which you need to use or if you want to completely <b>allow any http request to work within your app</b>, then go for the below solution(add those keys to your apps info.plist file),</div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"><key>NSAppTransportSecurity</key></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"><dict></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <!--Include to allow all connections--></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <key>NSAllowsArbitraryLoads</key></span></span></div>
<div class="p1">
<span class="s1"><span style="color: purple;"> <true/></span></span></div>
<div class="p1">
</div>
<div class="p1">
<span class="s1"><span style="color: purple;"></dict></span></span><br />
<span class="s1"><span style="color: purple;"><br /></span></span>
<span class="s1">Below is a pictorial representation of this solution in the actual info.plist file, for your reference,</span><br />
<span class="s1"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8f2kfPtvcOJ1i67TfN_DWjgr1I6Aflkvgm2rSCwmeYSAsogA1fnTYv46Pc5xK6NpQ9_l1p1tIunrkTiSMruadR0psp8YRt917O5L9QwbBJWn-e-jMz-Mh08ZREFAWF7Lnnr2cEdzeaXBT/s1600/Bypass+ATS.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="24" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8f2kfPtvcOJ1i67TfN_DWjgr1I6Aflkvgm2rSCwmeYSAsogA1fnTYv46Pc5xK6NpQ9_l1p1tIunrkTiSMruadR0psp8YRt917O5L9QwbBJWn-e-jMz-Mh08ZREFAWF7Lnnr2cEdzeaXBT/s640/Bypass+ATS.png" width="640" /></a></div>
<span class="s1"><br /></span>
<span class="s1"><br /></span>
<span class="s1"><br /></span>
<span style="color: #cc0000;"><span class="s1"><b>NOTE:</b> </span>Disabling or Bypassing App Transport Security is not a good idea and its not recommended by Apple. This is just a temporary fix until you implement App Transport Security for your app. Since <b>It's yet to be seen how hard Apple</b> will come down during app <b>review</b> in the coming years <b>about ATS</b> exceptions we request.</span><br />
<br />
<span style="color: #45818e;"><i>Why Apple is forcing us to implement ATS or to use secure connections </i>is <i>for protecting personal data from being compromised over insecure wireless connections, and making sure our users online activity is properly secured from unwanted network snooping.</i></span><br />
<i><br /></i>
<span style="color: #674ea7;">The permanent fix for this problem is to go ahead and implement App Transport Security by considering <b>Apple recommended security practices</b></span>.<br />
<br />
While migrating the services from http to https protocol you must consider the <b>Apple recommended security practices listed below</b>,<br />
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">•</span><span class="s2"><span class="Apple-tab-span"> </span></span><span class="s1">The protocol Transport Layer Security (TLS) must be at least version 1.2.</span></div>
<div class="p2">
<span class="s1"></span><br /></div>
<div class="p1">
<span class="s1">•</span><span class="s2"><span class="Apple-tab-span"> </span></span><span class="s1">Connection ciphers are limited to those that provide forward secrecy.</span></div>
<br />
<div class="p1">
<span class="s1">•</span><span class="s2"><span class="Apple-tab-span"> </span></span><span class="s1">Certificates must use at least an SHA256 fingerprint with either a 2048 bit or greater RSA key, or a 256 bit or greater Elliptic-Curve (ECC) key.</span></div>
<div class="p1">
<span class="s1"><br /></span>
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">For more information on this refer Apple's official documentation here, <a href="https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html"><span style="color: blue;">https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html</span></a></span><br />
<br />
Hope this post is helpful, any comments or suggestions are acceptable and appreciated.</div>
<br /></div>
<div class="p1">
<br /></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com0tag:blogger.com,1999:blog-1383588507317276034.post-17476449421082832192014-09-22T00:24:00.000-07:002014-09-22T00:24:16.362-07:00Improving performance when dealing with layer properties or Core Animation<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">Prior or subsequent to this post I recommend you guys to take a look in to one of my another post related to enhancing performance and memory management of an iOS app here, <a href="http://just-works.blogspot.in/2014/05/how-to-manage-memory-and-enhance.html"><span style="color: blue;">http://just-works.blogspot.in/2014/05/how-to-manage-memory-and-enhance.html</span></a></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">Before going in to depth there is a quick snapshot below for those who don’t want to dig in but just want a quick instant solution w.r.t improving performance when dealing with layer properties of UIView</span><span style="font-family: 'Lucida Grande';">,</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';">1) Use Opaque Layers Whenever Possible. i.e; set <b>opaque</b> property to YES, whenever it is possible.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">2) Use Simpler Paths for CAShapeLayer Objects i.e; While drawing shape layers it is recommended to break up complex shapes into simpler shapes.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">3) Specify a Shadow Path when adding a shadow to your view’s layer. i.e; <span style="color: #660000;">make use of layers <b>shadowPath</b> property when you are dealing with layers shadow effect</span>.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">4) Use Asynchronous Layer rendering whenever required (if and only if really required). i.e; set <b>drawsAsynchronously</b> boolean property to YES whenever required, so as to process your drawing commands asynchronously in a background thread.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">5) Use <b>shouldRasterize</b> boolean property, If you have a complex view (i.e. relatively expensive to re-render) that you are animating, but for which the animated view is not itself changing, rasterizing the layer can improve the performance by not re-rendering the layer all the time.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';"><span style="color: #660000;">shouldRasterize will consume memory for saving a rasterized image in memory, so use this whenever it is really required.</span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';"><b><u><i>Bit more description/explanation on above points,</i></u></b></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';">1) Use Opaque Layers Whenever Possible. i.e; set opaque property to YES, whenever it is possible.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';">- A Boolean value indicating whether the layer contains completely opaque content.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';">- The default value of this property is NO.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';">- <span style="color: #660000;">Declare Views as Opaque Whenever Possible</span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">Setting the opaque property of your layer to YES lets Core Animation know that it does not need to maintain an alpha channel for the layer. Not having an alpha channel means that the compositor does not need to blend the contents of your layer with its background content, which <span style="color: #660000;">saves time during rendering</span>.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">Setting the value of this <span style="color: #660000;">property to YES for a custom view tells UIKit that it does not need to render any content behind your view</span>. <span style="color: #660000;">Less rendering can lead to increased performance for your drawing code </span>and is generally encouraged. Of course, if you set the opaque property to YES, your view must fills its bounds rectangle completely with fully opaque content.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">The iPhone GPU is a tile-based renderer. If an overlaying layer is completely opaque over an entire tile, the GPU can ignore setting up and processing any graphics commands related to the layer underneath for that particular tile, in addition to not having to do compositing of the pixels in that tile.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">2) One way to minimize drawing time for shape layers is to <span style="color: #660000;">break up complex shapes into simpler shapes.</span> Using simpler paths and layering multiple CAShapeLayer objects on top of one another in the compositor can be much faster than drawing one large complex path. <span style="color: #660000;">That is because the drawing operations happen on the CPU whereas compositing takes place on the GPU.</span></span><span style="font-family: 'Lucida Grande';"><span style="color: #660000;"> </span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">3) <b>shadowPath</b> - The shape of the layer’s shadow.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';">when ever we are using CALayer animation or for shadow effects, we usually see a jerk in rendering those views if the transition view consists of huge graphics or utilizing more layer properties of view, especially in lower versions of iOS devices.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">So as to avoid this jerk on rendering and optimizing performance we have to set shadowPath property when we are setting layers shadow effects.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';"><span style="color: #660000;">- The default value of shadowPath property is nil</span>, which causes the layer to use a standard shadow shape. <span style="color: #660000;">If you specify a value for this property, the layer creates its shadow using the specified path instead of the layer’s composited alpha channel.</span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="color: #660000;"><b><span style="font-family: 'Lucida Grande';">- Specifying an explicit path usually improves rendering performance.</span><span style="font-family: 'Lucida Grande';"> </span></b></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- The value of this property is retained using the Core Foundation retain/release semantics.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- When you specify a path object for this property,<span style="color: #660000;"> Core Animation uses that shape to draw and cache the shadow effect.</span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;"><span style="color: #660000;">- For layers whose shape never changes or rarely changes, this greatly improves performance by reducing the amount of rendering</span> done by Core Animation.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">Below code snippet is an <span style="color: red;">example</span> of setting shadow path for a view's layer which is having rounded corners,</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="color: red; font-family: Lucida Grande;">UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(10.0, 10.0)];</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';"><span style="color: red;">view.layer.shadowPath = path.CGPath;</span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';"><b>Note</b>: Your code will vary depending on the actual shape of your view. UIBezierPath has many convenience methods, you can get more info on this over here, <a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIBezierPath_class/"><span style="color: blue;">https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIBezierPath_class/</span></a></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';"><span style="color: #660000;">- You will need to update the layer’s shadowPath each time the bounds of your view change.</span> And if you’re animating a change to bounds, then you will also need to animate the change to the layer’s shadowPath to match. </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';"><span style="color: #660000;">- This property will drastically improves view rendering performance.</span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: 'Lucida Grande';">4) </span><span style="font-family: 'Lucida Grande';"><b>drawsAsynchronously</b> - </span><span style="font-family: 'Lucida Grande';">Use Asynchronous Layer rendering whenever required.</span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- <span style="color: #660000;">drawsAsynchronously is a boolean indicating whether drawing commands are deferred and processed asynchronously in a background thread.</span></span><span style="font-family: 'Lucida Grande';"><span style="color: #660000;"> </span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- The <span style="color: #660000;">default value for this property is NO.</span></span><span style="font-family: 'Lucida Grande';"><span style="color: #660000;"> </span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- <span style="color: #660000;">Any drawing that you do in your delegate’s drawLayer:inContext: method or your view’s drawRect: method normally occurs synchronously on your app’s main thread.</span></span><span style="font-family: 'Lucida Grande';"><span style="color: #660000;"> </span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">-<span style="color: #660000;"> In some situations, though, drawing your content synchronously might not offer the best performance. If you notice that your animations are not performing well, you might try enabling the drawsAsynchronously property on your layer to move those operations to a background thread.</span></span><span style="font-family: 'Lucida Grande';"><span style="color: #660000;"> </span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- Make sure your drawing code is<b><span style="color: #660000;"> thread safe</span></b> whenever you are using drawsAsynchronously property.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;"><b>Note</b>:<span style="color: #660000;"> Always, you should always measure the performance of drawing asynchronously before putting it into your code.</span></span><span style="font-family: 'Lucida Grande';"><span style="color: #660000;"> </span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">5) <b>shouldRasterize</b> a boolean that indicates whether the layer is rendered as a bitmap before compositing</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- The <span style="color: #660000;">default value of this property is NO</span>.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- <span style="color: #660000;">When animating a complex set of layers that, themselves, are not changing, you can set shouldRasterize to YES, do the animation, and then turn off shouldRasterize.</span></span><span style="font-family: 'Lucida Grande';"><span style="color: #660000;"> </span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- If you have a complex view i.e;<span style="color: #660000;"> views expensive to re-render</span>, that you are animating, but for which the animated view is not itself changing,<span style="color: #660000;"> rasterizing the layer can improve the performance by not re-rendering the layer all the time.</span></span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- When the value of this property is YES, the layer is rendered as a bitmap in its local coordinate space and then composited to the destination with any other content.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">- Shadow effects and any filters in the filters property are rasterized and included in the bitmap.</span><span style="font-family: 'Lucida Grande';"> </span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;"><b>Note</b>: <span style="color: #660000;">shouldRasterize will <b>consume memory</b> for saving a rasterized image in memory, so use this whenever it is really required.</span></span><span style="font-family: 'Lucida Grande';"><span style="color: #660000;"> </span></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">For more information on this refer Apple's official documentation here, </span><span style="font-family: 'Lucida Grande';"><a href="https://developer.apple.com/library/IOS/documentation/Cocoa/Conceptual/CoreAnimation_guide/ImprovingAnimationPerformance/ImprovingAnimationPerformance.html"><span style="color: blue;">https://developer.apple.com/library/IOS/documentation/Cocoa/Conceptual/CoreAnimation_guide/ImprovingAnimationPerformance/ImprovingAnimationPerformance.html</span></a></span></div>
<div class="MsoNormal" style="margin-bottom: 13.8pt; mso-outline-level: 1;">
<span style="font-family: Lucida Grande;">Hope this post is helpful, any comments or suggestions are acceptable.</span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com2tag:blogger.com,1999:blog-1383588507317276034.post-46882098750809032492014-05-28T23:54:00.000-07:002014-05-28T23:54:08.045-07:00How to change status bar appearance in iOS 7<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
If your iOS applications minimum deployment target is iOS7.0 and above and if you have a dark background in your app then you can’t see the status bar text, since in iOS 7.0 and above status bar is transparent by default.</div>
<div class="p1">
If the background of your view is black(or any dark color) then your status bar will not be visible, and looks something like below snapshot,</div>
<div class="p1">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG2GQZa7u2D5WmnEb4FsfQc-TkrbXbuL73ikiL2TNCe11pEDJoz8LBFsjlKTzo8z9CL_w8PBFEj6LtK_xoGi6udkWJoNjPssycv32oiBClBG-dxs8Vqplt1cr0zgjU0JXRB0w2lBc-CEMn/s1600/statusbarnotvisible.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG2GQZa7u2D5WmnEb4FsfQc-TkrbXbuL73ikiL2TNCe11pEDJoz8LBFsjlKTzo8z9CL_w8PBFEj6LtK_xoGi6udkWJoNjPssycv32oiBClBG-dxs8Vqplt1cr0zgjU0JXRB0w2lBc-CEMn/s1600/statusbarnotvisible.png" height="320" width="196" /></a></div>
<div class="p1">
So here is a way to make your status bar text visible in dark background,</div>
<div class="p1">
1) <span class="s1">Add "<b>View controller-based status bar appearance</b>" </span>property <span class="s1">(key is </span>UIViewControllerBasedStatusBarAppearance) to your <span style="color: purple;">applications info.plist</span> and set the value to <b>NO</b>.</div>
<div class="p1">
<br /></div>
<div class="p1">
2) Go to your applications <b>AppDelegate.m </b>file and add the below code snippet in <b>didFinishLaunchingWithOptions</b> method,</div>
<div class="p1">
</div>
<div class="p1">
<b><span style="color: purple;">[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent<span class="s1">];</span></span></b></div>
<div class="p1">
<b><span style="color: purple;"><span class="s1"><br /></span></span></b></div>
<div class="p1">
If you have done with the above 2 points then you are 90% done except your status bar will not be visible during the time of splash screen display, </div>
<div class="p1">
To make your status bar visible when splash screen is displaying with dark background, just do the below mentioned step,</div>
<div class="p1">
<br /></div>
<div class="p1">
3) Add "<b>Status Bar Style</b>" property (key is UIStatusBarStyle) to your <span style="color: purple;">applications info.plist</span> and set the value to “<b>Transparent black style (alpha of 0.5)</b>” (key is UIStatusBarStyleLightContent<span class="s1">).</span></div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">and we are 100% </span>done now,,, :)</div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
Now if you run your app you can able to see status bar as shown in the below snapshot,</div>
<div class="p1">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuMA5pjRaBbUE4vD7cPJC38lcRil88-1g8906LcrWCMldDpDT7js19lPVs-eHOv7J5jiiXXMwaz1pr6RfmQR5WXI3hSWx4ocS3D7PEGeVqJ2rZR5WednLT0M4WHyQFDrmLChYV3W8y052s/s1600/statusbarvisible.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuMA5pjRaBbUE4vD7cPJC38lcRil88-1g8906LcrWCMldDpDT7js19lPVs-eHOv7J5jiiXXMwaz1pr6RfmQR5WXI3hSWx4ocS3D7PEGeVqJ2rZR5WednLT0M4WHyQFDrmLChYV3W8y052s/s1600/statusbarvisible.png" height="320" width="197" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
For more information on this refer Apple's official documentation here, <a href="https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/AppearanceCustomization.html"><span style="color: blue;">https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/AppearanceCustomization.html</span></a></div>
<div class="separator" style="clear: both; text-align: left;">
Hope this post is helpful,any comments or suggestions are acceptable.</div>
<div class="p1">
<br /></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com2tag:blogger.com,1999:blog-1383588507317276034.post-56302256542231769722014-05-21T23:26:00.000-07:002014-05-21T23:26:45.514-07:00How to manage memory and enhance performance of an iOS app<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana, sans-serif;">One
of the major things in any mobile application development is a <span style="color: purple;">memory
management and performance enhancement</span>,</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana, sans-serif;">Here
is an instant guide or list of few crucial points w.r.t. </span><span style="font-family: Verdana, sans-serif;">enhancing our apps memory management, in turn performance optimizations in our iOS application,</span><span style="font-family: Verdana, sans-serif;"> which I came across in my daily life and spent lot of time in fixing it, thought it would be great or it may save someones valuable time and energy if I share my note on this regard,</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Here we go,</span><br />
<span style="font-family: Verdana, sans-serif;"><span style="text-indent: -0.25in;">1)</span><span style="font-size: 7pt; text-indent: -0.25in;"> </span><span style="text-indent: -0.25in;"><span style="color: purple;">Better to make all IBOutlet objects as __weak reference in ARC
environment</span>. Except for those from file’s owner to top-level objects in a
xib(nib or a storyboard scene) file which should be strong. Outlets that you
create typically should be weak by default.</span></span><br />
<span style="text-indent: -0.25in;"><span style="font-family: Verdana, sans-serif;"><br /></span></span>
<span style="font-family: Verdana, sans-serif;"><span style="text-indent: -0.25in;">2</span><span style="text-indent: -0.25in;">)</span><span style="font-size: 7pt; text-indent: -0.25in;"> </span><span style="text-indent: -0.25in;"><span style="color: purple;">Instead of calling init constructor method every time when
pushing/navigating to a view controller/view call init only once and until and
unless the viewController object reference exists in memory use the same
reference to navigate.</span></span></span><br />
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>164</o:Words>
<o:Characters>939</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>7</o:Lines>
<o:Paragraphs>2</o:Paragraphs>
<o:CharactersWithSpaces>1101</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoListParagraphCxSpFirst" style="mso-layout-grid-align: none; mso-list: l0 level1 lfo1; mso-pagination: none; text-autospace: none; text-indent: -.25in;">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;">Ex:- Suppose we are navigating
from Home screen to a DetailViewController then create an iVar of
DetailViewController globally and in your push method check for this iVar
reference in memory and navigate like,<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;">if(detailVCObj)<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;">{<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;"> detailVCObj =
[[DetailViewController alloc] initWithNibName:@”DetailViewController”
bundle:nil];//if object reference is not their in memory then only alloc and
initilize<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;">}<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;">[self.navigationController pushViewController:detailVCObj animated:YES];<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;">and suppose if you want to set some property values before pushing a
view controller then create your custom getter and setter methods for those
properties and call those methods before pushing view whenever you are
following the above protocol.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;">By doing this(by following this protocol) it will optimize memory
consumption during runtime. Follow this protocol even in ARC enabled projects.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoListParagraphCxSpLast" style="text-indent: -24px;">
<span style="font-family: Verdana, sans-serif;"><span style="font-size: 7pt; text-indent: -0.25in;"> </span></span><span style="font-family: Verdana, sans-serif; text-indent: -0.25in;">3</span><span style="font-family: Verdana, sans-serif; text-indent: -0.25in;">)</span><span style="font-family: Verdana, sans-serif; font-size: 7pt; text-indent: -0.25in;"> </span><span style="font-family: Verdana, sans-serif;"><span style="text-indent: -0.25in;"><span style="color: purple;">In ARC enabled projects, assign nil to all re-creatable objects and
iVars after making use of these objects</span></span></span><span style="font-family: Verdana, sans-serif;">, </span><span style="font-family: Verdana, sans-serif; text-indent: -0.25in;">so as to</span><span style="font-family: Verdana, sans-serif; text-indent: -0.25in;"> </span><span style="font-family: Verdana, sans-serif; text-indent: -0.25in;">handle memory in an
optimized manner.</span></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>67</o:Words>
<o:Characters>387</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>3</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>453</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoListParagraphCxSpFirst" style="mso-layout-grid-align: none; mso-list: l0 level1 lfo1; mso-pagination: none; text-autospace: none; text-indent: -.25in;">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;"><span style="color: purple;">In MRC (Manual Reference Counting) type of projects release re-creatable
objects and iVars and then assign nil, </span><o:p></o:p></span><span style="font-family: Verdana, sans-serif; text-indent: -24px;"><span style="text-indent: -0.25in;"><span style="color: purple;">after making use of these objects</span></span></span><span style="font-family: Verdana, sans-serif;">.</span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;">Assigning nil is equivalent to release and dereference in ARC.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;">Ex:-<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none; text-indent: .5in;">
<span style="font-family: Verdana, sans-serif;">a) In ARC enabled environment,
myiVar = nil;<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst">
<span style="font-family: Verdana, sans-serif;">b) In MRC environment, <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-family: Verdana, sans-serif;">[myiVar release];//releasing
object<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;">myiVar = nil;//dereferencing the object<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;">4<span style="text-indent: -0.25in;">)</span><span style="font-size: 7pt; text-indent: -0.25in;"> </span><span style="text-indent: -0.25in;"><span style="color: purple;"><b>Avoid using images</b> up to the maximum extent in your app, and try to
achieve the design by using <b>colors</b> wherever and whenever it is possible for
you</span>.</span></span></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>50</o:Words>
<o:Characters>287</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>2</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>336</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoListParagraphCxSpFirst" style="mso-layout-grid-align: none; mso-list: l0 level1 lfo1; mso-pagination: none; text-autospace: none; text-indent: -.25in;">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;">Since this will optimize both <b>time
complexity</b> (load time for image is more compared to a UIColor) and <b>space complexity</b> (size of .ipa file
will be reduced drastically if we avoid images).<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;">If you are using images then based on your requirement and particular instance which UIImage method to use? refer <a href="http://just-works.blogspot.in/2013/07/imagenamed-vs-imagewithcontentsoffile.html" target="_blank"><span style="color: blue;">this link</span></a></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;">5) <span style="color: purple;">Make use of <b>Singleton design pattern</b> in your application wherever it is
required and can be used</span>.</span></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>72</o:Words>
<o:Characters>412</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>3</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>483</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoNormal" style="margin-left: 21.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<div class="MsoListParagraph">
<span style="font-family: Verdana, sans-serif;">Ex:- Suppose if you are calling some of the methods of a class
frequently in your app, like a database model class in your app will be called
frequently for either to insert or to fetch or to update different tables and
its entities. Make this class as a singleton class so that even if you make n
number of calls to this class methods single object will manipulate the
functionality.<o:p></o:p></span></div>
<div class="MsoListParagraph">
<span style="font-family: Verdana, sans-serif;">For more information on important design patterns in iOS refer <a href="http://just-works.blogspot.in/2013/11/the-most-important-design-patterns-in.html" target="_blank"><span style="color: blue;">this link</span></a></span></div>
<div class="MsoListParagraph">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoListParagraph">
<span style="font-family: Verdana, sans-serif;">6<span style="text-indent: -0.25in;">)</span><span style="font-size: 7pt; text-indent: -0.25in;"> </span><span style="text-indent: -0.25in;"><span style="color: purple;">Whenever you are making a core data fetch call use <b>includesPropertyValues</b>
where ever possible</span>, refer <a href="http://just-works.blogspot.in/2014/02/includespropertyvalues-in-core-data.html" target="_blank"><span style="color: blue;">this link</span></a> </span><span style="text-indent: -0.25in;">for further details on this API.</span></span></div>
<div class="MsoListParagraph">
<span style="text-indent: -0.25in;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoListParagraph">
<span style="font-family: Verdana, sans-serif;"><span style="text-indent: -0.25in;">7</span><span style="text-indent: -0.25in;">)</span><span style="font-size: 7pt; text-indent: -0.25in;"> </span><span style="text-indent: -0.25in;"><span style="color: purple;">Keep track of temporary memory buffers and reuse it, and don’t keep
unused memory, free it up as soon as you are done using it</span>.</span></span></div>
<div class="MsoListParagraph">
<span style="text-indent: -0.25in;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoListParagraph">
<span style="font-family: Verdana, sans-serif;"><span style="text-indent: -0.25in;">8</span><span style="text-indent: -0.25in;">)<span style="font-size: 9px;"> </span></span><span style="text-indent: -0.25in;">iOS will automatically kills the background processes and apps which
consumes more memory and causes memory pressure during low memory conditions,
its every programmer responsibility to handle low memory conditions inside our
app as-well.</span></span></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>275</o:Words>
<o:Characters>1568</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>13</o:Lines>
<o:Paragraphs>3</o:Paragraphs>
<o:CharactersWithSpaces>1840</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoListParagraphCxSpFirst" style="mso-layout-grid-align: none; mso-list: l0 level1 lfo1; mso-pagination: none; text-autospace: none; text-indent: -.25in;">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="font-family: Verdana, sans-serif;">During low memory conditions iOS UIKit framework will send few
notifications to our app,</span></div>
<div class="MsoListParagraphCxSpLast">
<span style="color: purple; font-family: Verdana, sans-serif;"><span style="font-size: 12pt; text-indent: 19.8pt;">- Implement the<span class="apple-converted-space"> </span></span><code style="text-indent: 19.8pt;"><span style="font-size: 12pt;"><a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/applicationDidReceiveMemoryWarning:"><span style="text-decoration: none;">applicationDidReceiveMemoryWarning:</span></a></span></code><span class="apple-converted-space" style="text-indent: 19.8pt;"><span style="font-size: 12pt;"> </span></span><span style="font-size: 12pt; text-indent: 19.8pt;">method of your application
delegate.</span></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="color: purple; font-family: Verdana, sans-serif;"><span style="font-size: 12pt; text-indent: 19.8pt;">- Override the<span class="apple-converted-space"> </span></span><code style="text-indent: 19.8pt;"><span style="font-size: 12pt;"><a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/didReceiveMemoryWarning"><span style="text-decoration: none;">didReceiveMemoryWarning</span></a></span></code><span class="apple-converted-space" style="text-indent: 19.8pt;"><span style="font-size: 12pt;"> </span></span><span style="font-size: 12pt; text-indent: 19.8pt;">method in your custom<span class="apple-converted-space"> </span></span><code style="text-indent: 19.8pt;"><span style="font-size: 12pt;">UIViewController</span></code><span class="apple-converted-space" style="text-indent: 19.8pt;"><span style="font-size: 12pt;"> </span></span><span style="font-size: 12pt; text-indent: 19.8pt;">subclass.</span></span></div>
<div class="MsoListParagraphCxSpLast">
<span style="color: purple; font-family: Verdana, sans-serif;"><span style="font-size: 12pt; text-indent: 19.8pt;">- Register to receive the<span class="apple-converted-space"> </span></span><code style="text-indent: 19.8pt;"><span style="font-size: 12pt;"><a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/c/data/UIApplicationDidReceiveMemoryWarningNotification"><span style="text-decoration: none;">UIApplicationDidReceiveMemoryWarningNotification</span></a></span></code><span class="apple-converted-space" style="text-indent: 19.8pt;"><span style="font-size: 12pt;"> </span></span><span style="font-size: 12pt; text-indent: 19.8pt;">notification.</span></span></div>
<div class="MsoNormal" style="text-indent: .5in;">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Upon receiving any of these notifications, your handler method should respond by immediately <b>removing strong references to objects</b>. </span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">View controllers automatically remove references to views that are currently offscreen, but you should also <b>override the didReceiveMemoryWarning method and use it to remove any additional references that your view controller does not need</b>.</span></div>
<div class="MsoNormal">
<span style="background: white;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-indent: 0px;">
<span style="font-family: Verdana, sans-serif; text-indent: -0.25in;">9) </span><span style="font-family: Verdana, sans-serif;"><span style="text-indent: -0.25in;">Use <span style="color: purple;"><b>Instruments</b></span> and <span style="color: purple;"><b>Static Analyzer</b></span> </span></span><span style="font-family: Verdana, sans-serif; text-indent: -24px;">Xcode </span><span style="font-family: Verdana, sans-serif; text-indent: -0.25in;">tools to check your app specific
memory stats, and take further actions w.r.t. memory allocations, memory pressure and memory leaks.</span></div>
<div class="MsoNormal">
<span style="text-indent: -0.25in;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>30</o:Words>
<o:Characters>174</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>203</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--></div>
<div class="MsoListParagraph" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana, sans-serif;">For more information regarding this topic refer Apple’s official
documentation here, <a href="https://developer.apple.com/library/ios/documentation/Performance/Conceptual/ManagingMemory/Articles/MemoryAlloc.html" target="_blank"><span style="color: blue;">https://developer.apple.com/library/ios/documentation/Performance/Conceptual/ManagingMemory/Articles/MemoryAlloc.html </span></a> and <a href="https://developer.apple.com/library/mac/documentation/developertools/conceptual/instrumentsuserguide/MemoryManagementforYouriOSApp/MemoryManagementforYouriOSApp.html#//apple_ref/doc/uid/TP40004652-CH11-SW1"><span style="color: blue;">https://developer.apple.com/library/mac/documentation/developertools/conceptual/instrumentsuserguide/MemoryManagementforYouriOSApp/MemoryManagementforYouriOSApp.html#//apple_ref/doc/uid/TP40004652-CH11-SW1</span></a></span></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>31</o:Words>
<o:Characters>177</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>207</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<!--EndFragment-->
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>23</o:Words>
<o:Characters>133</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>155</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoListParagraph" style="mso-layout-grid-align: none; mso-list: l0 level1 lfo1; mso-pagination: none; text-autospace: none; text-indent: -.25in;">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<!--EndFragment-->
<!--EndFragment--><br />
<div class="MsoListParagraph">
<span style="text-indent: -0.25in;"><span style="font-family: Verdana, sans-serif;">Hope this post was helpful, any comments or suggestions are acceptable.</span></span></div>
<div class="MsoListParagraph" style="text-indent: -24px;">
<span style="font-family: Verdana, sans-serif;">-</span></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>19</o:Words>
<o:Characters>109</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>127</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoListParagraph" style="mso-layout-grid-align: none; mso-list: l0 level1 lfo1; mso-pagination: none; text-autospace: none; text-indent: -.25in;">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<!--EndFragment-->
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>49</o:Words>
<o:Characters>281</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>2</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>329</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoListParagraph" style="mso-layout-grid-align: none; mso-list: l0 level1 lfo1; mso-pagination: none; text-autospace: none; text-indent: -.25in;">
<span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment--></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>38</o:Words>
<o:Characters>222</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>259</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Cambria;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoListParagraph" style="mso-layout-grid-align: none; mso-list: l0 level1 lfo1; mso-pagination: none; text-autospace: none; text-indent: -.25in;">
<br />
<o:p></o:p></div>
<!--EndFragment--></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com2tag:blogger.com,1999:blog-1383588507317276034.post-61465599029422580662014-02-17T08:25:00.000-08:002014-02-17T08:26:09.354-08:00includesPropertyValues in Core Data <div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<span style="font-family: Verdana, sans-serif;">When ever from your iOS app if you are fetching values from a core data table very frequently just for some updated values or so, that time instead of creating n number of fetch request objects in memory (since core data manipulation happens in a memory context) and which causes unnecessarily memory pressure a major drawback in any apps performance. So as to handle these kind of situations optimally we need to make use of some of the basic properties provided from core data framework.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">So here comes a very really decent and required API property of core data called “<b> includesPropertyValues</b>”</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><b>What is an</b> <b>includesPropertyValues?</b></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">You can set <span class="s1">includesPropertyValues</span> to <span class="s1">NO</span> to reduce memory overhead by avoiding creation of objects to represent the property values. </span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><span style="color: purple;">By default <span class="s1">includesPropertyValues</span> is <span class="s1">YES</span></span>, Normally Core Data fetches the object Id & property data for the matching records, fills the row cache with the information, and returns managed object as faults. </span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">These faults are managed objects, but all of their property data still resides in the row cache until the fault is fired. When the fault is fired, Core Data retrieves the data from the row cache—there is no need to go back to the database.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><span style="color: purple;">If <b><span class="s1">includesPropertyValues</span> is <span class="s1">NO</span></b>, then Core Data <b>fetches <i>only</i> the object ID information</b> for the matching records—it does not populate the <b>row cache</b></span>. Core Data still returns managed objects since it only needs managed object IDs to create faults. However, if you subsequently fire the fault, Core Data looks in the (empty) row cache, doesn't find any data, and then goes back to the store a second time for the data.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><b>When to use?</b></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">For example consider you are downloading some huge set of data(say, a finite number of images) from a remote server through a web service call and saving it in local persistence core data, and you want to show a progress bar showing the progress of downloaded data.</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">Say my <span style="color: purple;">table name</span> is “<span style="color: purple;">ImageTabel</span>” and their is a <span style="color: purple;">integer column</span> called “<span style="color: purple;">downloadStatus</span>” just to track the number of images downloaded and saved in local core database.</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">Consider initially all values of downloadStatus column will be 0 representing that no data is downloaded yet and once the data downloads respective column values for downloadStatus will be updated by 1.</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">In this kind of conditions if we simply make n number of fetch requests just to update the progress bar, we actually need just totalNumber of downloaded images by fetching ImageTabel, downloadStatus column where values == 1; but table may contain few more attributes,<span style="color: purple;"> no need to load all property values continuously in to memory.</span></span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="color: purple; font-family: Verdana, sans-serif;">In such cases if you set <span class="s1">includesPropertyValues to NO,</span> this will reduce the memory overhead by fetching only object Id information and does not load row cache.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><b>example code snippet:</b></span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;">+(int)countOfDownloadedQuestions</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;">{</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> NSEntityDescription *itemEntity = [NSEntityDescription entityForName:@"<span class="s2">ImageTabel</span>" inManagedObjectContext:[self managedObjectContext]];</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> NSFetchRequest *fetch = [[NSFetchRequest alloc] init];</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> fetch.includesPropertyValues = NO; //to reduce memory overhead.</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> [fetch setEntity:itemEntity];</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> NSPredicate *p = [NSPredicate predicateWithFormat:@"<span class="s2">downloadStatus</span> == 1"];</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> [fetch setPredicate:p];</span></div>
<div class="p4">
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> NSError *fetchError;</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> int totalDownloadedCount;</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> NSArray *fetchedArray = [[self managedObjectContext] executeFetchRequest:fetch error:&fetchError];</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> totalDownloadedCount = [fetchedArray count];</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> fetchedArray = nil;</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;"> return totalDownloadedCount;</span></div>
<div class="p3">
<span style="color: blue; font-family: Verdana, sans-serif;">}</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">The above <span style="color: blue;">countOfDownloadedQuestions</span> method you may be calling in a loop or from an asynchronous web service callback so as to update a progress bar.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><span class="s3"><b>Note:</b></span> You need to use this property only if you are sure that either you will not need the actual property data or you already have the information in the row cache, otherwise you will incur multiple trips to the database.</span></div>
<div class="p2">
<br /></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">For further information on this topic you can visit Apple's developer document in the following URL,</span></div>
<br />
<div class="p5">
<span class="s3"><span style="font-family: Verdana, sans-serif;"><a href="https://developer.apple.com/library/mac/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html#//apple_ref/occ/instm/NSFetchRequest/includesPropertyValues">https://developer.apple.com/library/mac/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html#//apple_ref/occ/instm/NSFetchRequest/includesPropertyValues</a></span></span></div>
<div class="p5">
<span class="s3"><br /></span></div>
<div class="p5">
<span class="s3"><span style="font-family: Verdana, sans-serif;">Hope this post was helpful, any comments or suggestions are appreciated & acceptable :)</span></span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com0tag:blogger.com,1999:blog-1383588507317276034.post-26616758103376934812014-01-21T07:32:00.000-08:002014-01-21T07:32:54.711-08:00Views getting hidden behind Navigation bar iOS7<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">In iOS7,</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">- View Controllers use full-screen layout.</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">- Status bar is transparent.</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">- Navigation bar is translucent(semi transparent) by default, </span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">and one major <span style="color: #351c75;">problem</span> from these updates developers will face is,</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">When you run your existing app which is compatible for iOS 7 and below (say minimum deployment target is iOS6.0) then when you run your app in the new Xcode 5.x with iOS7 simulator (either 3.5 or 4 inch) <span style="color: #351c75;">a part or complete subviews of your viewController will go behind navigation bar</span>.</span></div>
<div class="p2" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<b><u><span style="color: purple; font-family: Verdana, sans-serif;">Solution:</span></u></b></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">Use the below <span style="color: #351c75;">iOS 7 (Xcode5.x) compatible code snippet</span> inside <b>viewDidLoad</b> method of your viewController </span></div>
<div class="p2" style="text-align: left;">
<span style="color: #741b47; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<span style="color: #990000; font-family: Verdana, sans-serif;">if ([self respondsToSelector:@selector(edgesForExtendedLayout)])</span></div>
<div style="text-align: left;">
</div>
<div class="p1" style="text-align: left;">
<span style="color: #990000; font-family: Verdana, sans-serif;"> self.edgesForExtendedLayout = UIRectEdgeNone;</span></div>
<div class="p1" style="text-align: left;">
<span style="color: #990000; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">As an example below is the graphical representation of this Problem,</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">1) Before Fix,</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">In the below image you can see the bordered subview's top portion is getting hidden by navigation bar</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1NBgy3Fknvhu8M4Ry5hY8x0QXTJKGv8zDxmi637QpcfKJXwVm_JcZgMUtgZvXPy4o32TbWuCkdR9Lx5KF-YfJKTYi33Gwv0a0lAI0BNmzqLOU7Kk7gbufTWcAy-ENi5h5joteadvnDx-V/s1600/Before+Fix.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1NBgy3Fknvhu8M4Ry5hY8x0QXTJKGv8zDxmi637QpcfKJXwVm_JcZgMUtgZvXPy4o32TbWuCkdR9Lx5KF-YfJKTYi33Gwv0a0lAI0BNmzqLOU7Kk7gbufTWcAy-ENi5h5joteadvnDx-V/s1600/Before+Fix.png" height="320" width="197" /></span></a></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
</div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">2) After fix,</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">Subview alignment became proper after fix see it in below image, </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtAk5zy_o62PNe-ZJrWDpZcxhUEMhqO2X5ymzA__dpps71o-kMdu9d-w0FXfM0GiuZkJa1IbJla7CALBcilKWll0ogMGyckklumQipNDW0oJCuqwFsLl79dSRB1Tlh-i0Z3hfiLNhyDmRm/s1600/After+Fix.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtAk5zy_o62PNe-ZJrWDpZcxhUEMhqO2X5ymzA__dpps71o-kMdu9d-w0FXfM0GiuZkJa1IbJla7CALBcilKWll0ogMGyckklumQipNDW0oJCuqwFsLl79dSRB1Tlh-i0Z3hfiLNhyDmRm/s1600/After+Fix.png" height="320" width="197" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<u><span style="font-family: Verdana, sans-serif;">A note on <span style="text-align: left;"><span style="color: #660000;"><b>edgesForExtendedLayout</b></span>:</span></span></u></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><span class="s1"><b>edgesForExtendedLayout</b></span> is to specify <span style="color: purple;">which edges of a view should be extended</span>, regardless of bar translucency. By default, the value of this property is <span class="s1">UIRectEdgeAll</span>.</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">For further information on this topic you can visit Apple's developer document in the following URL,</span></div>
<div class="p1" style="text-align: left;">
<a href="https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/AppearanceCustomization.html"><span style="color: blue; font-family: Verdana, sans-serif;">https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/AppearanceCustomization.html</span></a></div>
<div class="p1">
<br /></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com2tag:blogger.com,1999:blog-1383588507317276034.post-5687189806301722432013-12-31T00:35:00.000-08:002013-12-31T00:35:56.182-08:00UDID equivalent in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">From iOS <span class="s1">5</span> and above Apple deprecated </span><b><span style="font-family: Verdana;">uniqueIdentifier</span></b><span style="font-family: Verdana;"> (accessing UDID of iOS device) method, I hope for some sort of security reasons. In iOS 7, Apple removed <b>uniqueIdentifier</b> property itself. So apps that requires a user specific id so as to run needs an alternative, here is one alternative way to get a unique identifier called GUID.</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; color: #404040; font-family: Verdana;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="background-color: white; color: #404040;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">GUID is an acronym <span class="s1">for</span> <span class="s2">'<b><span style="color: purple;">Globally Unique Identifier</span></b>'</span>. GUID is also known as UUIDs(Universally Unique Identifiers). It is a <span class="s2">128</span>-bit integer number used to identify resources.</span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-family: Verdana;">Below code snippet (method) will generate a GUID in objective C - ARC version, which can run in any of iOS deployment target<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: 'Menlo Regular';">+ (</span><span style="color: #5c2699; font-family: 'Menlo Regular';">NSString</span><span style="font-family: 'Menlo Regular';"> *)generateGUID<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Menlo Regular';">{<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Menlo Regular';"> </span><span style="color: #5c2699; font-family: 'Menlo Regular';">CFUUIDRef</span><span style="font-family: 'Menlo Regular';"> uuid = </span><span style="color: #2e0d6e; font-family: 'Menlo Regular';">CFUUIDCreate</span><span style="font-family: 'Menlo Regular';">(</span><span style="color: #aa0d91; font-family: 'Menlo Regular';">NULL</span><span style="font-family: 'Menlo Regular';">);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Menlo Regular';"> </span><span style="color: #5c2699; font-family: 'Menlo Regular';">CFStringRef</span><span style="font-family: 'Menlo Regular';"> uuidStr = </span><span style="color: #2e0d6e; font-family: 'Menlo Regular';">CFUUIDCreateString</span><span style="font-family: 'Menlo Regular';">(</span><span style="color: #aa0d91; font-family: 'Menlo Regular';">NULL</span><span style="font-family: 'Menlo Regular';">, uuid);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Menlo Regular';"> </span><span style="color: #2e0d6e; font-family: 'Menlo Regular';">CFRelease</span><span style="font-family: 'Menlo Regular';">(uuid);<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Menlo Regular';"> </span><span style="color: #aa0d91; font-family: 'Menlo Regular';">return</span><span style="font-family: 'Menlo Regular';"> (</span><span style="color: #aa0d91; font-family: 'Menlo Regular';">__bridge</span><span style="font-family: 'Menlo Regular';"> </span><span style="color: #5c2699; font-family: 'Menlo Regular';">NSString</span><span style="font-family: 'Menlo Regular';"> *) uuidStr;<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Menlo Regular';">}<o:p></o:p></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-family: 'Menlo Regular';"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><u>Additional available alternative properties:</u><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><u><br /></u></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">From iOS 6.0 and above,<span style="color: blue;"> </span></span><b style="font-family: Verdana;"><a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/identifierForVendor" target="_blank"><span style="color: blue;">identifierForVendor</span></a> </b><span style="font-family: Verdana;">property is available. </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><u>Pros and Cons:</u></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><u><br /></u></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><b>Pros:<o:p></o:p></b></span></div>
<div class="MsoNormal" style="line-height: 13.5pt; margin-left: 22.5pt; vertical-align: baseline;">
<span style="font-family: Verdana;">GUID’s can be generated in offline.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><b>Cons:</b><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"> Each time when we try to invoke this method it will return <span style="color: purple;">a different unique key</span>, which is based on some specific point of time.</span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">For more information on UIDevice properties you can visit Apples developer document in the following url<span style="color: blue;"> <o:p></o:p></span></span><span style="color: blue; font-family: Verdana;"><a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/identifierForVendor">https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/identifierForVendor</a></span></div>
<div class="MsoNormal">
<br /></div>
<div>
<span style="font-family: 'Menlo Regular';"><br /></span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com2tag:blogger.com,1999:blog-1383588507317276034.post-23714889182111876552013-11-22T07:23:00.000-08:002013-11-28T23:50:57.540-08:00What is @synchronized directive in Objective C?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<span style="font-family: Verdana, sans-serif;">In a multithreaded environment<span style="color: #4c1130;"> if more than one thread tries to access same memory address may cause a </span>“<span class="s1"><span style="color: #20124d;">Race Condition</span></span>”, to avoid such kind of conditions you should use “<span class="s1"><span style="color: #20124d;">Mutex Lock(Mutual Exclusion)</span></span>” nothing but blocking or restricting or<span style="color: #4c1130;"> <span class="s2">locking n number of threads to access same memory address or content at a same point of time</span></span> and allowing only one thread at an instance of time.</span></div>
<div class="MsoNormal">
</div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">This can be achieved in Objective C by using <span class="s1"><b><span style="color: #20124d;">@synchronized</span></b></span> directive.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">Example:<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">Generally while
implementing Singleton design pattern or class you will see some kind of code
snippet like below in any iOS projects,<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">+(</span><span style="color: #aa0d91; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">id</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">)getSingletonInstance<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">{<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span style="color: #aa0d91; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">@synchronized</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">(</span><span style="color: #aa0d91; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">self</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">)<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>{<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span style="color: #aa0d91; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">if</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"> (</span><span style="color: #3f6e74; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">singletonObj</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">
== </span><span style="color: #aa0d91; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">nil</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">) <o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>{<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span style="color: #3f6e74; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">singletonObj</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"> =
[[</span><span style="color: #aa0d91; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">self</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"> </span><span style="color: #2e0d6e; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">alloc</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">] </span><span style="color: #2e0d6e; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">init</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">];<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span style="color: #aa0d91; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">return</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"> </span><span style="color: #3f6e74; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">singletonObj</span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">;<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 28.0pt; text-autospace: none;">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">In the above example if suppose at a particular instance of time,
if two different class tries to call getSingletonInstance method then if you
don’t manage thread safety then a Race Condition will occur, so as to avoid
such kind of exceptional conditions you need to use @synchronized directive.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">Here whenever a thread reaches this line of code, </span><span style="font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><span style="color: #4c1130;">@synchronized
directive will check whether any other thread is already accessing self, if
some thread is already accessing it will just block the current thread until
and unless the processing thread will finishes its task.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">At this point you might be thinking that </span><span style="font-family: Verdana;"><span style="color: #20124d;"><b>why do we need to use threads? </b>&<b> </b></span></span><b style="font-family: Verdana;"><span style="color: #20124d;">why we want to manage threads?</span></b></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">Here is the answer,<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">- Basically a </span><span style="font-family: Verdana;"><span style="color: #4c1130;">thread is an instance of a Process</span></span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">, A process may have
n number of threads (we can say threads are children’s of a process)<o:p></o:p></span></div>
<div class="MsoNormal">
<br />
<b style="color: #20124d; font-family: Verdana;">why do we need to use threads?</b><br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: left;">
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">In
Software Programming we need to take care of CPU resources optimizations so
that the performance of our application can be increased. If we consider any
iOS application basically there will be a<b> </b><span style="color: #4c1130;"><b>main thread</b> </span>for each application
where exactly the app starts and all the UI manipulations has been taken care by
this main thread.<o:p></o:p></span></div>
</div>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 115%;">In this kind of environment
suppose say an example, <span style="color: #660000;">if you are downloading an image from a remote server through a </span></span><span style="color: #660000;"><span style="line-height: 17.77777862548828px;">web-service</span></span><span style="color: #660000;"><span style="line-height: 115%;"> (ex: REST) call, then if you perform this task on main thread then
until and unless you get the response from the server your UI will become hang,
so </span><span style="line-height: 17.77777862548828px;">always</span><span style="line-height: 115%;"> this kind of asynchronous tasks should be handled by </span><span style="line-height: 17.77777862548828px;">separate</span></span><span style="line-height: 115%;"><span style="color: #660000;"> threads so as to utilize CPU, system resources properly and to increase your apps performance.</span></span></span><span style="font-family: "Verdana","sans-serif"; font-size: 12.0pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "Verdana","sans-serif"; font-size: 12.0pt; line-height: 115%; mso-bidi-font-family: Arial;"><br /></span></div>
<b style="font-family: Verdana;"><span style="color: #20124d;">why we want to manage threads?</span></b></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">- </span><span style="font-family: Verdana;"><span style="color: #4c1130;">Every thread of a process has equal access to your application
resources to fetch, modify or manipulate.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"><br /></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">- </span><span style="font-family: Verdana;"><span style="color: #4c1130;">Each thread will not make sure that how long it will run and when
it will finishes its task.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">So it’s a </span><span style="font-family: Verdana;"><span style="color: #4c1130;">programmer's responsibility</span></span><span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";"> or the one who creates a
thread its his/her responsibility </span><span style="font-family: Verdana;"><span style="color: #4c1130;">to manage threads.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br />
<b style="font-family: Verdana;"><span style="color: #20124d;">Advantages of using multiple threads</span></b><br />
<span style="color: #660000;"><span style="font-family: Verdana;">- Use of multiple threads will reduce CPU waiting time.</span></span><br />
<span style="font-family: Verdana;"><span style="color: #660000;"><br /></span></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">For additional information on synchronization you can refer
Apple’s official documentation in following URL </span><span style="font-family: Verdana;"><a href="https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html#//apple_ref/doc/uid/10000057i-CH8-SW1"><span style="color: blue;">https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html#//apple_ref/doc/uid/10000057i-CH8-SW1</span></a><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>334</o:Words>
<o:Characters>1908</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>15</o:Lines>
<o:Paragraphs>4</o:Paragraphs>
<o:CharactersWithSpaces>2238</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<span style="color: black; font-family: Verdana; mso-bidi-font-family: "Menlo Regular";">Hope this is helpful, any comments or suggestions are acceptable.</span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com6tag:blogger.com,1999:blog-1383588507317276034.post-20049198803339929322013-11-21T07:56:00.000-08:002013-11-21T07:56:46.352-08:00iOS App life cycle<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 0in; margin-right: 0in; margin-top: .25in; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana;">Today will see the iOS App
life cycle, mainly on</span></div>
<div class="MsoNormal">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">1)
The App Launch Cycle<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">2)
The View Controller Life Cycle<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Verdana; mso-bidi-font-family: Verdana;">1) The App Launch Cycle</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">Lets
see as soon as you tap on any application icon to open any iOS app in your device springboard what will happen,<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><br /></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">- As part of the launch cycle, the <span style="color: #4c1130;">iOS</span> system <span style="color: #4c1130;">creates a
process and main thread</span> for your app and <span style="color: #4c1130;">calls your app’s main function on that main thread</span>. <o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><br /></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">- The default<span style="color: #4c1130;"> main function</span>
that comes with your Xcode project promptly hands control over to the UIKit
framework, it <span style="color: #4c1130;">will initialize your app and prepares it to run.</span><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">Below flowchart</span><span style="font-family: Verdana; font-size: 8.0pt; mso-bidi-font-family: Verdana;"> </span><span style="font-family: Arial; font-size: 8.0pt;">(diagram from Apple’s developer docs:
<a href="https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/Art/app_launch_fg_2x.png">https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/Art/app_launch_fg_2x.png</a>)</span><span style="font-family: Verdana; mso-bidi-font-family: Verdana;"> will show the
sequence of events that occurs when an app is launched into the foreground</span><span style="font-family: Times; font-size: 10.0pt; mso-bidi-font-family: Times;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvfcQ5fyeaAx8zU3IqLGiWEDXgdEPgaQcSrIUEhy6jX8JGPwDEOiEaC0slPKzF7ByHGEFbF8uFOu73MARef6tPPO4ub0AMKz0uZvWmw_cmwCiAhlbpRnYkr01aWOeIhtHqHwJZfPPQ8QUk/s1600/iOSAppLaunchLifeCycle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvfcQ5fyeaAx8zU3IqLGiWEDXgdEPgaQcSrIUEhy6jX8JGPwDEOiEaC0slPKzF7ByHGEFbF8uFOu73MARef6tPPO4ub0AMKz0uZvWmw_cmwCiAhlbpRnYkr01aWOeIhtHqHwJZfPPQ8QUk/s640/iOSAppLaunchLifeCycle.png" width="548" /></a></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">The <b><span style="color: #4c1130;">main</span></b> function’s main job is to hand control to the UIKit
framework.<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Verdana; mso-bidi-font-family: Verdana;">2) The View Controller
Life Cycle</span></b></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana;"><br /></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana;">Now lets
see once your app is launched then say your first screen (Root/Home View
Controller), how it will load in to the screen in other words the view
controller life cycle hierarchy,</span></div>
<div class="MsoNormal" style="margin-bottom: 3.0pt; margin-left: 0in; margin-right: 0in; margin-top: .25in; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">If you are
creating your UI or View programmatically then the first method which gets
called is <b><span style="color: #4c1130;">loadView</span>, </b>followed by<b> <span style="color: #4c1130;">viewDidLoad -> viewWillAppear
-> viewDidAppear</span> </b><span style="mso-spacerun: yes;"> </span>and while moving
to the next screen or view Controller the hierarchy of methods are like <span style="color: #4c1130;"><b>viewWillDisappear
-> viewDidDisappear -> viewDidUnload </b><span style="mso-spacerun: yes;"> </span></span><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><span style="color: red;">Note: In iOS 6 and later, </span><span style="color: #4c1130;">viewDidUnload</span><span style="color: red;"> method is deprecated since
views are no longer purged under low-memory conditions.</span><o:p></o:p></span></b></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><span style="color: #4c1130;">viewDidLoad</span> – <span style="color: #4c1130;">Called only once</span> during the initial load of interface
builder(.xib) file. Initial set up of view controller can be taken care here.<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><span style="color: #4c1130;">viewWillAppear</span> – This method gets called <span style="color: #4c1130;">just before your view appears</span>
or renders on screen <span style="color: #4c1130;">every time </span>when you navigate or switch between different
views. Suppose if you want to update your view different while switching back
and forth based on some requirement for that kind of dynamic changes to the
views can be done here.<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><span style="color: #4c1130;">viewDidAppear</span> – Once your <span style="color: #4c1130;">view loads completely</span> on screen this method
gets called and here you can handle further UI or functionalities w.r.t your
view controller like database call or whatever you want to do after loading
your view.<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><span style="color: #4c1130;">viewWillDisappear</span><b> - </b>This method is <span style="color: #4c1130;">called before the view is
actually removed</span> and before any animations are configured. Notifies the view
controller that its view is about to be removed from a view hierarchy.<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><span style="color: #4c1130;">viewDidDisappear</span><b> - </b>This method<b> </b><span style="color: #4c1130;">notifies the view
controller</span> that its <span style="color: #4c1130;">view was removed from a view hierarchy,</span> here you can
perform additional tasks associated with dismissing or hiding the view.<b><o:p></o:p></b></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;">viewDidUnload<b> </b>- Called when the controller’s view is released
from memory. In iOS 6 and later, clearing references to views and other objects
in your view controller is unnecessary.<b> <span style="color: red;">In iOS 6 and later, </span><span style="color: #4c1130;">viewDidUnload</span><span style="color: red;">
method is deprecated.</span></b><span style="color: red;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><o:p>For additional information on Apps states and multitasking you can refer Apples official documentation </o:p></span><span style="color: blue; font-family: Verdana;"><a href="https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3">https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3</a></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana;"><br /></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana; mso-bidi-font-family: Verdana;"><o:p> Hope this post is helpful,any comments or suggestions is acceptable.</o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>437</o:Words>
<o:Characters>2493</o:Characters>
<o:Company>Marlabs</o:Company>
<o:Lines>20</o:Lines>
<o:Paragraphs>5</o:Paragraphs>
<o:CharactersWithSpaces>2925</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<br /></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com84tag:blogger.com,1999:blog-1383588507317276034.post-18170425061100409552013-11-19T03:49:00.001-08:002013-11-19T03:53:52.387-08:00The most important design patterns in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<div class="MsoNormal">
<span style="font-family: Verdana;">Today lets see the most important basic design patterns in iOS,<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">A <b>design pattern</b> solves a common software engineering problem. Patterns are abstract designs, not code. When you adopt a design, you adapt its general pattern to your specific needs. No matter what type of app you’re creating, Understanding design patterns helps you use frameworks more effectively and allows you to write apps that are more reusable, more extensible, and easier to change.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #4c1130; font-family: Verdana, sans-serif;">The most important design patterns you must know are</span></div>
<div class="MsoNormal">
<span style="color: #4c1130; font-family: Verdana;">1) MVC (Model View Controller)</span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">2) Target Action<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">3) Delegation<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">4) Blocks</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana;">1) MVC (Model View Controller)<o:p></o:p></span></b></div>
<div class="MsoNormal" style="margin-bottom: 11.25pt;">
<span style="font-family: Verdana;">In this pattern, model keep track of your app’s data, views display your user interface and make up the content of an app, and controllers manage your views. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 15pt;">
<span style="font-family: Verdana;"><span style="color: #4c1130;">Example:</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">In an iOS app, your <span style="color: #4c1130;">Interface builder(.xib) files are views, your interface(.h) and implementation(.m) file is a Controller and your database (CoreData or SQLite or SQL Server) is nothing as a Model</span>.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">Advantages:</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #0c343d;">This pattern separates the data objects in the model from the views used to present that data. This separation promotes code reuse by making it possible to swap out your views as needed and is especially useful when creating universal apps—that is, apps that can run on both iPad and iPhone.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana;">2) Target Action<o:p></o:p></span></b></div>
<div class="MsoNormal" style="line-height: 15pt;">
<span style="font-family: Verdana;">Target-action</span><span style="font-family: Verdana;"> is a conceptually simple design in which <span style="color: #4c1130;">one object sends a message to another object when a specific event occurs.</span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 15pt;">
<br /></div>
<div class="MsoNormal" style="line-height: 15pt;">
<span style="font-family: Verdana;">Example:<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">Consider an UIButton in a view say Login button on a UIView, on TouchUpInside event you are calling a selector method where you actually perform login action, here the <span style="color: #4c1130;">Target</span> is generally <span style="color: #4c1130;">self</span> or whichever the controller(XYZViewController) is handling the action and <span style="color: #4c1130;">Action is Login </span>in this example.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana;">3) Delegation<o:p></o:p></span></b></div>
<div class="MsoNormal" style="line-height: 15pt;">
<span style="font-family: Verdana;">Delegation</span><span style="font-family: Verdana;"> is a simple and powerful pattern in which <span style="color: #4c1130;">one object in an app acts on behalf of, or in coordination with, another object.</span> <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 15pt;">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">The delegate of a framework class is automatically registered as an observer of notifications posted by the delegating object.The delegate need only implement a notification method declared by the framework class to receive a particular notification message.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 15pt;">
<br /></div>
<div class="MsoNormal" style="line-height: 15pt;">
<span style="font-family: Verdana;"><span style="color: #4c1130;">Example:</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">Consider UITableView class where didSelectRowAtIndexPath: is a delegate method of UITableView,<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #1f497d; font-family: Verdana;">-(void)tableView:(<a href="file://localhost/Users/arunhs/Library/Developer/Shared/Documentation/DocSets/com.apple.adc.documentation.AppleiOS6.0.iOSLibrary.docset/Contents/Resources/Documents/document"><span style="color: #1f497d; text-decoration: none;">UITableView</span></a> *)tableView didSelectRowAtIndexPath:(<a href="file://localhost/Users/arunhs/Library/Developer/Shared/Documentation/DocSets/com.apple.adc.docum"><span style="color: #1f497d; text-decoration: none;">NSIndexPath</span></a> *)indexPath<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">This method tells the delegate that the specified row is now selected. The delegate handles selections in this method<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #4c1130; font-family: Verdana;">Attribute tableView: A table-view object informing the delegate about the new row selection.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #4c1130;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">Attribute indexPath:An index path locating the new selected row in tableView.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">By the help of this delegate method of UITableView, you will come to know which row of your table user has selected if your table is adopting and confirming to UITableView protocol, i.e; <UITableViewDelegate> in your interface(.h) file and yourTableViewObj.delegate = self; in your implementation(.m) file.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #0c343d; font-family: Verdana;">Advantage of this delegate method is No pain for a programmer to get the user selected row index.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana;">4) Blocks<o:p></o:p></span></b></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">Blocks are a <span style="color: #4c1130;">language-level feature, which allow you to create distinct segments of code that can be passed around to methods or functions as if they were values.</span> Blocks are Objective-C objects, which means they can be added to collections like NSArray or NSDictionary. They also have the ability to capture values from the enclosing scope,<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">Example:</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 10pt;">
<span style="font-family: Verdana;">The syntax to define a block literal uses the caret symbol (^), like this:</span></div>
<div class="MsoNormal" style="margin-bottom: 10pt;">
<span style="font-family: Verdana;">1)^{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 10pt; text-indent: 0.5in;">
<span style="font-family: Verdana;">NSLog(@”This is a block”);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 10pt;">
<span style="font-family: Verdana;"> };<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;">In the above example, the block doesn’t return any value, and doesn’t take any arguments.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12pt;">
<span style="font-family: Verdana;">2)</span><span style="font-family: Verdana;"> use the <span style="color: #343434;">^ </span>operator to declare a block variable and to indicate the beginning of a block literal. The body of the block itself is contained within <span style="color: #343434;">{}, </span>as shown in this example<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">int multiplier = 4;<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">int (^myBlock)(int) = ^(int num) {<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;"> return num * multiplier;<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">};<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 10pt;">
<span style="font-family: Verdana;">the block is able to make use of variables from the same scope in which it was defined.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 10pt;">
<span style="font-family: Verdana;"><span style="color: #4c1130;">In the above example myBlock is a block name, which returns an integer type, it takes an single argument of type int, num is an argument name and stuffs inside flower braces’{}’ is the body of the block and a block always ends with a semicolon(;).</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #4c1130;">Advantages:</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #0c343d;">- A block is commonly used in place of a call back function.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #0c343d;">- It saves you having to create your own threads and maintain the state of each thread, manage locks & etc.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana;"><span style="color: #0c343d;">- Blocks can be used by multiple threads.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal" style="line-height: 15pt;">
<span style="font-family: Verdana;">In addition to the above mentioned design patterns iOS is having even more design patterns like <span style="color: purple;">Abstract Factory,Adapter,Chain of Responsibility,Command,Composite,Decorator,Facade,Iterator,Mediator,Memento,Observer,Proxy,Receptionist,Singleton</span> to know about these additional design patterns you can go through this Apples Official documentation</span><span style="font-family: 'Lucida Grande'; font-size: 14.5pt;"> </span><span style="font-family: 'Lucida Grande';"><span style="color: windowtext;"><a href="https://developer.apple.com/legacy/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html#//apple_ref/doc/uid/TP40002974-CH6-SW6">https://developer.apple.com/legacy/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html#//apple_ref/doc/uid/TP40002974-CH6-SW6</a></span></span><span style="font-family: 'Lucida Grande'; font-size: 14.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 15pt;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal" style="line-height: 15pt;">
</div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">Hope this post was helpful, any comments or suggestions is acceptable.</span></div>
</div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com8tag:blogger.com,1999:blog-1383588507317276034.post-28048982932254906642013-11-14T07:13:00.000-08:002013-11-18T01:32:47.993-08:00Subclass, Category and Extensions in Objective C<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Today lets see what is subclassing, categories and extensions in Objective C, and where, when and how to use these concepts.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: #4c1130;">Note: A complete working Xcode project copy is available for download, which includes all the required examples to understand these concepts practically at the end of this post.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;"><span style="font-size: large;">1) <u>Subclass in Objective C</u></span><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;"><u><br /></u></span></b></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: red;">Subclassing</span> in simple words is <span style="color: red;"><b>changing the behavior of properties or methods of an existing class</b> </span>or in other words subclassing is inheriting a class and modifying the methods or properties of super class however you want.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Suppose for example consider a UITextField class, by default the placeholder text of UITextField will be of light gray color with default system font. If we want to change this style just subclass UITextField and override <span style="font-size: 11pt;">drawPlaceholderInRect </span>method.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><u>Example:</u><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Create a class of type UITextField and name it some thing like <span style="color: #660000;">CustomUITextFieldPlaceholderAppearance</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<u><span style="font-family: Verdana, sans-serif;">CustomUITextFieldPlaceholderAppearance.h<o:p></o:p></span></u></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">#import <UIKit/UIKit.h><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@interface CustomUITextFieldPlaceholderAppearance : UITextField<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: #134f5c;">@end</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<u><span style="font-family: Verdana, sans-serif;">CustomUITextFieldPlaceholderAppearance.m<o:p></o:p></span></u></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">#import "CustomUITextFieldPlaceholderAppearance.h"<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@implementation CustomUITextFieldPlaceholderAppearance<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: #38761d;">// override <b>drawPlaceholderInRect</b> method</span><span style="color: #134f5c;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">- (void)drawPlaceholderInRect:(CGRect)rect {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: #134f5c;"> </span><span style="color: #38761d;">// Set color and font size and style of placeholder text</span><span style="color: #134f5c;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: #134f5c;"> </span><span style="color: #134f5c;">[[UIColor</span> <span style="color: #134f5c;">redColor] setFill]; </span><span style="color: #38761d;">//set placeholder text color to red</span><span style="color: #134f5c;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> [[self placeholder] drawInRect:rect withFont:[UIFont fontWithName:@"verdana" size:14.0]]; </span><span style="font-family: Verdana, sans-serif;"><span style="color: #38761d;">//set custom font style and size to placeholder text </span><span style="color: #134f5c;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">}<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@end<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Now in your application wherever you want this custom look and feel for placeholder text of textfield you can just import this subclass header file (#import "CustomUITextFieldPlaceholderAppearance.h") and create an object of this class and you are done. In addition to this look and feel the default delegate methods and properties of UITextField will remain same.<span style="font-size: 16pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;"><br /></span></b></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;"><span style="font-size: large;">2) <u>Categories in Objective C</u></span><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;"><span style="font-size: large;"><u><br /></u></span></span></b></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">An Objective C <span style="color: red;">category</span> allows you <b><span style="color: red;">add your own methods to an existing class.</span><o:p></o:p></b></span></div>
<div class="MsoNormal">
<br />
<span style="font-family: Verdana, sans-serif;">Categories are also called as "<span style="color: red;">informal protocols</span>".</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Suppose take an example, since Foundation Framework classes such as NSString, NSArray, NSDate etc… doesn’t have any access to modify, you can add your own methods in to these classes by the help of a category.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Consider NSString Class and if suppose we want to add a reverse string method to NSString class, so that in our application at any point of time any NSString object can call this category method and get a reversed string as a result. We can do this as below,<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Note: Usually naming convention for category file is like <b><i><span style="color: blue;">OriginalClassName+CategoryName</span></i></b><span style="font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><u>Example:</u></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Lets create a category class with a name something like <span style="font-size: 11pt;"><span style="color: #660000;">NSString+NSString_ReverseString</span></span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><b><u><span style="font-size: 11pt;">NSString+NSString_ReverseString.h</span></u></b><span style="font-size: 16pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">#import <Foundation/Foundation.h><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@interface NSString (NSString_ReverseString)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">- (NSString *)reverseString:(NSString *)yourString;<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@end<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u><span style="font-size: 11pt;"><span style="font-family: Verdana, sans-serif;">NSString+NSString_ReverseString.m<o:p></o:p></span></span></u></b></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">#import "NSString+NSString_ReverseString.h"<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@implementation NSString (NSString_ReverseString)<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">- (NSString *)reverseString:(NSString *)yourString<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">{<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> NSMutableString *reversedStr = [NSMutableString stringWithCapacity:[yourString length]];<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> [yourString enumerateSubstringsInRange:NSMakeRange(0,[yourString length])<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> options:(NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> [reversedStr appendString:substring];<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> }];<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> return reversedStr;<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #134f5c;"><span style="font-family: Verdana, sans-serif;">}</span><span style="font-family: Verdana, sans-serif;"> </span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: #134f5c;">@end</span><span style="color: #aa0d91;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: #aa0d91;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Now in your application wherever you want to reverse a string then just import this category header file (#import "NSString+NSString_ReverseString.h"<span style="color: #643820;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">) and call our <b>reverseString:</b> method from any of NSString object and it will reverse and return you the reversed string.<span style="font-size: 16pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">In the above example we have added a custom method called <b>reverseString: </b>to NSString class from the help of a category.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: red;">Note that <b>in a category you can’t add an instance variable</b>, since methods within a category are added to a class at runtime.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif;"><span style="font-size: large;">3) <u>Extensions in Objective C</u></span><o:p></o:p></span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">Extensions are similar to categories but the need of extension is different.</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">- Class extensions are often used to extend the public interface with additional private methods or properties for use within the implementation of the class.</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">- Extensions can only be added to a class for which you have the source code at compile time (the class is compiled at the same time as the class extension).</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">- Extensions will be local to a class file.</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">The syntax to declare class extension looks like,</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@interface ClassName()</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@end</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">since no name is given in the parentheses, class extensions are often referred to as <span style="color: #741b47;">anonymous categories</span>.</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="color: red; font-family: Verdana, sans-serif;">Note Extensions can add instance variables.</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">Example:</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@interface ABCExtension()</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@property NSObject *yourProperty;</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@end</span></div>
<div class="p1">
<br /></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">the compiler will automatically synthesize the relevant accessor methods, as well as an instance variable, inside the primary class implementation.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">If you add any methods in a class extension, these must be implemented in the primary implementation for the class.</span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><u>Example:</u></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">In any of your class in implementation file(.m), say ViewController.m</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"><span class="s1">@interface</span> ViewController ()</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">-(<span class="s1">void</span>)printName:(NSString *)name;</span></div>
<div class="p3">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">@end</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"><span class="s1">@implementation</span> ViewController</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">-(<span class="s1">void</span>)printName:(NSString *)name</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">{</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"> <span class="s2">NSLog</span>(<span class="s3">@"%@"</span>,name);</span></div>
<div class="p1">
<span style="color: #134f5c; font-family: Verdana, sans-serif;">}</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">In the above extension example printName: method is private to class ViewController, and cannot be accessed from outside the ViewController class.(even if you inherit since printName: is a private method their will not be any access to this method outside the class)</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">You can call this extension method only inside ViewController class, as below</span></div>
<div class="p4">
<span style="color: #134f5c; font-family: Verdana, sans-serif;"><span class="s4">[</span><span class="s1">self</span><span class="s4"> </span>printName<span class="s4">:</span><span class="s3">@"MyName"</span><span class="s4">];</span></span></div>
<div class="p1">
<br /></div>
<div class="MsoNormal">
</div>
<div class="p1">
<span style="color: red; font-family: Verdana, sans-serif;">Usually people will use extensions to hide private information of a class without exposing them to access from any other class.</span></div>
<div class="MsoNormal">
<br />
<span style="font-family: Verdana, sans-serif;">Finally few simple points to remember is </span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"><i>- Subclassing is better option if you want to customize an existing stuffs or functionalities, and</i></span><br />
<span style="color: blue; font-family: Verdana, sans-serif;"><i>- Category is a best option if you want to add additional functionalities to an existing class</i></span><br />
<br /></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><a href="https://www.dropbox.com/s/b0e19o1jcnufqy4/ObjectiveCBasics.zip" target="_blank">You can download a Sample Xcode Project <span style="color: blue;"><b>here</b></span>.</a></span><br />
<br />
Hope this post was helpful, any comments or suggestions is acceptable.</div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com57tag:blogger.com,1999:blog-1383588507317276034.post-56806271247641638632013-11-06T00:14:00.000-08:002014-02-07T02:14:30.744-08:00How to fix iOS 7 Status bar overlapping issue and status bar style<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
Hi folks, today lets see how to fix iOS 7 Status bar overlapping issue and making status bar style compatible in both iOS 6 and iOS 7 or in other words migrating your Xcode 4.x project to Xcode 5.x<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;">
1)<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span>Fixing Status Bar Overlapping issue in iOS 7.<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;">
2)<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span>Making Status Bar text visible in dark background.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
1) <u>Fixing Status Bar Overlapping issue in iOS 7</u> :<u><o:p></o:p></u></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
In iOS 7 status bar is transparent, and when you run your iOS project from Xcode 5 by selecting iOS 7, 4 inch retina device then your status bar will overlap your navigation bar, something like below,<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SvdCMfANfpGEaO1cKctA3QS5Xgn4l6e5z58Pg4ZvaPDjBrEn0tU9luh0PvZ6SKOKvFBe5TFIoPxeCTgb1I9GgM24-x9A3lDjZxfQiCcM4DwleHfcXN4QVHuARl1tmJa-RWDKfV93MzjY/s1600/StatusBarOverlappingIniOS7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SvdCMfANfpGEaO1cKctA3QS5Xgn4l6e5z58Pg4ZvaPDjBrEn0tU9luh0PvZ6SKOKvFBe5TFIoPxeCTgb1I9GgM24-x9A3lDjZxfQiCcM4DwleHfcXN4QVHuARl1tmJa-RWDKfV93MzjY/s320/StatusBarOverlappingIniOS7.png" height="65" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To fix this issue one approach is as below,<o:p></o:p></div>
<div class="MsoNormal">
a)<span style="text-indent: -0.25in;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="text-indent: -0.25in;">Select your interface builder(.xib) file in Xcode5 and</span></div>
<div class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;">
<o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;">
-<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span>Select file inspector tab and <span style="color: #cc0000;">uncheck “use AutoLayout” checkbox.</span></div>
<div class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;">
<span style="color: #cc0000;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WdRr4Krm2supCT2gyd9Q5ZMZx8PIrHf8KTqfjqbUjylrJIJI0VH6u0ZJAH2_LP-eQZ5y_xNPys3HOD_SkxxvyLRo_LG0MMMz5SEJ50MrCgU_HV3b40xXEM8Q4J_DvuZ0yE8EX0q8sACr/s1600/FileInspector_uncheckAutoLayout.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WdRr4Krm2supCT2gyd9Q5ZMZx8PIrHf8KTqfjqbUjylrJIJI0VH6u0ZJAH2_LP-eQZ5y_xNPys3HOD_SkxxvyLRo_LG0MMMz5SEJ50MrCgU_HV3b40xXEM8Q4J_DvuZ0yE8EX0q8sACr/s320/FileInspector_uncheckAutoLayout.png" height="320" width="224" /></a></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
b) <span style="color: #cc0000;">Move all your UI Elements</span> (views, buttons, imageviews etc)<span style="color: #cc0000;"> 20 pixels down.</span><o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
c) Since we have moved all UI Elements to 20pixels down in iOS 6.0 there will be a 20 pixel gap on top of each UI Element so as to fix this, we have an new property in Xcode 5 interface builder called <b><span style="color: #cc0000;">iOS 6/7 deltas</span>.<o:p></o:p></b></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="margin-left: 0.25in;">
- Go to Size Inspector tab and change <span style="color: #cc0000;">Delta Y value to -20</span>(so that it will work properly in all the iOS versions).<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl-x6z4jRDqQW1rHF0E0OAwy9HP4cKGy79qkW4aKG2KsOLqw0XLgbpGNjcvNhmKWHYd71XJll88J202WBPnJfcQ4rTfrkH8R1LMt-GYwtujjXREnRf3ApYYSuV5Xpgv_DtaQJ969F21BiB/s1600/SizeInspector_deltaYChange.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl-x6z4jRDqQW1rHF0E0OAwy9HP4cKGy79qkW4aKG2KsOLqw0XLgbpGNjcvNhmKWHYd71XJll88J202WBPnJfcQ4rTfrkH8R1LMt-GYwtujjXREnRf3ApYYSuV5Xpgv_DtaQJ969F21BiB/s1600/SizeInspector_deltaYChange.png" /></a></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
and that’s all status bar overlapping issue fixed.<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
</div>
<div class="MsoNormal" style="margin-left: 0.25in;">
Now if we run our app then the output is as below,<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR7NBfQAl_mEXPTgpP9trp1NuqlWqsfmww9gxsOBHcyy71qdwA0cEHMWLOu0_xziRR_216ixy8UcG_-h_1ZnIsOKT5I7wxecM4Vwl7wA6dnythYFhwANfYwWYaaSWpyRGr83TrIVfM1E8J/s1600/StatusBarTextNotVisible.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR7NBfQAl_mEXPTgpP9trp1NuqlWqsfmww9gxsOBHcyy71qdwA0cEHMWLOu0_xziRR_216ixy8UcG_-h_1ZnIsOKT5I7wxecM4Vwl7wA6dnythYFhwANfYwWYaaSWpyRGr83TrIVfM1E8J/s320/StatusBarTextNotVisible.png" height="87" width="320" /></a></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
Status bar is not overlapping my navigation bar now but <span style="color: #4c1130;">since my view is having a black or dark background and in iOS 7 status bar is transparent so that my status bar text is not visible at all.</span><o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="margin-left: 0.25in;">
To fix this there are couple of ways one simple approach is,<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
</div>
<div class="MsoNormal">
2)<b> <u>Making Status Bar text visible in dark background</u> :<o:p></o:p></b></div>
<div class="MsoNormal">
<b><br /></b></div>
<div class="MsoNormal">
a) Go to info.plist file of your app.<o:p></o:p></div>
<div class="MsoNormal">
b) Add a <span style="background-color: white; font-family: Courier; font-size: 10pt;"><span style="color: #cc0000;">ViewControllerBasedStatusBarAppearance</span><span style="color: grey;"> </span></span>Boolean key if it is not existing and assign value “<span style="color: #cc0000;">NO</span>”.<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
</div>
<div class="MsoNormal">
c) Add “<span style="color: #cc0000;">Status bar style</span>” key if it is not existing and select “<span style="color: #cc0000;">Opaque black style</span>” value to it.<span style="font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBu5iWXJmM4D7PRZb8D0aSVNmEWrGujUH_XOXHXUVgHNeybDNAzXwtNyyuOAqUGCuXQEfOwPY-jfK5Wf9kly4JClHdl_ShDt_QN3AL9gkeZ2wfhm4pvOgoZWktFEI73WIW0iAml-i-6J2e/s1600/changeInfoPlist.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBu5iWXJmM4D7PRZb8D0aSVNmEWrGujUH_XOXHXUVgHNeybDNAzXwtNyyuOAqUGCuXQEfOwPY-jfK5Wf9kly4JClHdl_ShDt_QN3AL9gkeZ2wfhm4pvOgoZWktFEI73WIW0iAml-i-6J2e/s400/changeInfoPlist.png" height="62" width="400" /></a></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="margin-left: 0.25in;">
and that’s all we are done.<o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal" style="margin-left: 0.25in;">
Now if i run my app the output is as below,<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJfjJEjC3zYIt9wjAmekRELltw6cV_AtGOA1cB7z-_TuJVhj6Bv3R_8YYPNN_Sez6SOuWKKNgi8CwPptrcjA_CcxrOoLeAiMa6zvEsyX-ZQoNFh_kEM57Ci1Abi0rMoRWMDsrXrutb7Zh3/s1600/iOS+7_StatusBarFixed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJfjJEjC3zYIt9wjAmekRELltw6cV_AtGOA1cB7z-_TuJVhj6Bv3R_8YYPNN_Sez6SOuWKKNgi8CwPptrcjA_CcxrOoLeAiMa6zvEsyX-ZQoNFh_kEM57Ci1Abi0rMoRWMDsrXrutb7Zh3/s320/iOS+7_StatusBarFixed.png" height="87" width="320" /></a></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="MsoNormal">
For complete reference <span style="font-family: Verdana; font-size: 10.5pt;">here is a link for Apple's Documentation</span><span style="font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<a href="https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/Bars.html">https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/Bars.html<o:p></o:p></a></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 0.25in;">
</div>
<div class="MsoNormal">
<span style="font-family: Verdana; font-size: 10.5pt;">Hope this post was helpful, any comments or suggestions is acceptable.</span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com4tag:blogger.com,1999:blog-1383588507317276034.post-16507781986792343762013-10-21T07:50:00.001-07:002013-10-21T07:50:06.750-07:00How to display circled options in Objective C?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">If in your iOS project if you have an ordered list with options and if you want to display the options in a circled style some thing like this <o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbmHA2LS8rd4vCNU5Q_j-SchGKkhR3syxIyN5IkA9ji4oM1t1ubXzgrvHA6L3A7P_rKbVspyviUTRw05v765Oqn_eVB2TwqBYIFbvCd2fTSsjBV8BeiU6s2pI8Lk1XC0dsnfy9q8Z8fg9Q/s1600/circled_option.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="color: black; font-family: Verdana, sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbmHA2LS8rd4vCNU5Q_j-SchGKkhR3syxIyN5IkA9ji4oM1t1ubXzgrvHA6L3A7P_rKbVspyviUTRw05v765Oqn_eVB2TwqBYIFbvCd2fTSsjBV8BeiU6s2pI8Lk1XC0dsnfy9q8Z8fg9Q/s1600/circled_option.png" /></span></a></div>
<span style="font-family: Verdana, sans-serif;">programmatically rather than using a circular image, then here is a simple way to achieve this by two different approach.</span><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><u>Approach 1: </u> By using a <span style="color: #660000;">Unicode character</span> for each option.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><u>Approach 2: </u> By drawing a circle shape layer from <span style="color: #660000;">UIBezierPath class</span><u><o:p></o:p></u></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><u>Approach 1: </u> By using a Unicode character for each option.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-size: 11pt;"><span style="font-family: Verdana, sans-serif;">Here we need to know the circled X Unicode value, where X = your option value(A,B,C…etc or 1,2,3…)<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-size: 11pt;"><span style="font-family: Verdana, sans-serif;">Here is a <a href="http://www.fileformat.info/info/unicode/char/a.htm" target="_blank">link</a> </span></span><span style="font-family: Verdana, sans-serif; font-size: 11pt;">, where we can get a complete reference for all available Unicode characters, </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: 11pt;"><span style="font-family: Verdana, sans-serif;"><u>Example:</u> </span></span></div>
<div class="MsoNormal">
<span style="font-size: 11pt;"><span style="font-family: Verdana, sans-serif;">suppose we want to display <span style="color: #4c1130;">circled A, then “u24B6” is the Unicode value</span> for circled A and just assign this as a your label text with a prefix ‘\’(backslash character) as below<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: #660000;"><span style="font-size: 11pt;">optionLabel1</span><span style="font-size: 11pt;">.</span><span style="font-size: 11pt;">text</span><span style="font-size: 11pt;"> = </span><span style="font-size: 11pt;">@"\u24B6"</span></span><span style="font-size: 11pt;"><span style="color: #660000;">; </span><span style="color: #274e13;">//circled A</span><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">optionLabel2</span><span style="font-size: 11pt;">.</span><span style="font-size: 11pt;">text</span><span style="font-size: 11pt;"> = </span><span style="font-size: 11pt;">@"\u24B7"</span><span style="font-size: 11pt;">; //circled B<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">optionLabel3</span><span style="font-size: 11pt;">.</span><span style="font-size: 11pt;">text</span><span style="font-size: 11pt;"> = </span><span style="font-size: 11pt;">@"\u24B8"</span><span style="font-size: 11pt;">; //circled C<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;"><span style="font-size: 11pt;">optionLabel4</span><span style="font-size: 11pt;">.</span><span style="font-size: 11pt;">text</span><span style="font-size: 11pt;"> = </span><span style="font-size: 11pt;">@"\u24B9"</span><span style="font-size: 11pt;">; //circled D</span></span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">and we are done with approach 1.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><u>Approach 2: </u> By drawing a circle shape layer from UIBezierPath class.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">In this approach we need to <span style="color: #660000;">draw a circular layer from UIBezierPath object and we need to add this circular layer as a subLayer to your UILabel’s layer.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">For this approach you need to add <span style="color: #4c1130;">QuartzCore framework</span> in to your XCode Project build phases and import QuartzCore.h to your class file. (#import <QuartzCore/QuartzCore.h>)<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="font-size: 11pt;"><u>Example:</u></span><u><o:p></o:p></u></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: #274e13;"><span style="font-size: 11pt;">// Drawing circlular path from </span><span style="font-size: 11pt;">UIBezierPath</span><span style="font-size: 11pt;"> </span></span><span style="font-size: 11pt;"><span style="color: #274e13;">object</span><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">UIBezierPath</span><span style="font-size: 11pt;"> *bezierPath = [</span><span style="font-size: 11pt;">UIBezierPath</span><span style="font-size: 11pt;"> </span><span style="font-size: 11pt;">bezierPathWithOvalInRect</span><span style="font-size: 11pt;">:</span><span style="font-size: 11pt;">CGRectMake</span><span style="font-size: 11pt;">(</span><span style="font-size: 11pt;">3</span><span style="font-size: 11pt;">, </span><span style="font-size: 11pt;">5</span><span style="font-size: 11pt;">, </span><span style="font-size: 11pt;">25</span><span style="font-size: 11pt;">, </span><span style="font-size: 11pt;">25</span><span style="font-size: 11pt;">)];<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">CAShapeLayer</span><span style="font-size: 11pt;"> *circleLayer = [[</span><span style="font-size: 11pt;">CAShapeLayer</span><span style="font-size: 11pt;"> </span><span style="font-size: 11pt;">alloc</span><span style="font-size: 11pt;">]</span><span style="font-size: 11pt;">init</span><span style="font-size: 11pt;">];<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">circleLayer.</span><span style="font-size: 11pt;">fillColor</span><span style="font-size: 11pt;"> = [</span><span style="font-size: 11pt;">UIColor</span><span style="font-size: 11pt;"> </span><span style="font-size: 11pt;">clearColor</span><span style="font-size: 11pt;">].</span><span style="font-size: 11pt;">CGColor</span><span style="font-size: 11pt;">;<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">circleLayer.</span><span style="font-size: 11pt;">strokeColor</span><span style="font-size: 11pt;"> = [</span><span style="font-size: 11pt;">UIColor</span><span style="font-size: 11pt;"> </span><span style="font-size: 11pt;">whiteColor</span><span style="font-size: 11pt;">].</span><span style="font-size: 11pt;">CGColor</span><span style="font-size: 11pt;">;<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">circleLayer.</span><span style="font-size: 11pt;">path</span><span style="font-size: 11pt;"> = bezierPath.</span><span style="font-size: 11pt;">CGPath</span><span style="font-size: 11pt;">;<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;"><span style="font-size: 11pt;">circleLayer.</span><span style="font-size: 11pt;">lineWidth</span><span style="font-size: 11pt;"> = </span><span style="font-size: 11pt;">2</span></span><span style="font-size: 11pt;"><span style="color: blue;">;</span><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="font-size: 11pt;"><span style="color: #274e13;">// Adding circle shape layer as a subLayer to UILabel's layer</span></span><span style="font-size: 11pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">[</span><span style="font-size: 11pt;">optionLabel1</span><span style="font-size: 11pt;">.</span><span style="font-size: 11pt;">layer</span><span style="font-size: 11pt;"> </span><span style="font-size: 11pt;">addSublayer</span><span style="font-size: 11pt;">:circleLayer];<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;">optionLabel1</span><span style="font-size: 11pt;">.</span><span style="font-size: 11pt;">text</span><span style="font-size: 11pt;"> = @”A”;</span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: Verdana, sans-serif;"><span style="font-size: 11pt;"><br /></span></span></div>
<br />
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">and we are done with approach 2.</span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="font-size: 14px; line-height: 20px;">For more information about UIBezierPath Class reference here is a link for Apple's Documentation</span></span></div>
<div class="MsoNormal">
<span style="color: #333333; font-family: Verdana, sans-serif;"><span style="font-size: 14px; line-height: 20px;"><a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIBezierPath_class/Reference/Reference.html">https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIBezierPath_class/Reference/Reference.html</a></span></span></div>
<div class="MsoNormal">
<span style="color: #333333; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="font-size: 14px; line-height: 20px;">Hope this post was helpful, any comments or suggestions is acceptable.</span></span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com0tag:blogger.com,1999:blog-1383588507317276034.post-71869656565144717232013-07-09T09:07:00.002-07:002013-07-09T09:10:16.661-07:00imageNamed v/s imageWithContentsOfFile methods in Objective C<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<span style="font-family: Verdana, sans-serif;">While loading image from your xcode resource bundle usually we use imageNamed and imageWithContentsOfFile methods,</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;">imageNamed</span> <span style="color: blue;">works on basis of cache mechanism</span>, this method looks in to system cache for an image object with the specified name and returns that object if it exists.If the image object is not in the cache then it loads image from a specified file from resource bundle and caches it, then returns the resulting object.</span></div>
<div class="p1">
<span style="color: purple; font-family: Verdana, sans-serif;">ex:- UIImage *image = [UIImage imageNamed:@"viewBg"];</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;">imageWithContentsOfFile simply loads the image</span> from resource bundle <span style="color: blue;">with no caching.</span></span></div>
<div class="p1">
<span style="color: purple; font-family: Verdana, sans-serif;">ex:- UIImage *image = [UIImage imageWithContentsOfFile:@"viewBg"];</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1">
<span style="color: red; font-family: Verdana, sans-serif;"><u>Pros & Cons: </u></span></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;">imageNamed</span> method is <span style="color: blue;">better to use when images are going to be reused</span> in your app, say for example Custom NavigationBar image in your app, View background etc.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<br />
<div class="p1">
<span style="font-family: Verdana, sans-serif;"><span style="color: blue;">imageWithContentsOfFile</span> method is <span style="color: blue;">better to use when you are not reusing a particular image frequently in your app</span>, so that this particular image won't go in to system cache & simply won't occupy space in system cache unnecessarily.</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">For more information about UIImage here is a link for Apple's Documentation</span></div>
<div class="p1">
<a href="http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html#//apple_ref/occ/clm/UIImage/imageNamed:">http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html#//apple_ref/occ/clm/UIImage/imageNamed:</a> </div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="font-family: Verdana, sans-serif;">Hope this post was helpful, any comments or suggestions is acceptable.</span></div>
<div>
<span style="background-color: #c0a154; color: #333333; font-family: Verdana, sans-serif; font-size: 14px; line-height: 20px;"><br /></span></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com2tag:blogger.com,1999:blog-1383588507317276034.post-71000272691897694682013-02-14T00:40:00.000-08:002013-11-19T00:30:05.847-08:00Load Image Asynchronously in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
This post describes how to <b>load an image from a remote server asynchronously</b> in iOS, and from this post it even shows how to <b>subclass UIImageView</b>.<br />
<br />
Whenever our application communicates with a server for data we usually use asynchronous calls to server from client side,so as to avoid blocking or so as to maintain thread safety, suppose say we are fetching an image from a url since we are making an asynchronous call from client side and since it is asynchronous call we can't make sure that when exactly we will get response so till that time we need to show some default image to user and once you get the actual image refresh the UIImageView with this image.<br />
<br />
<a href="https://www.dropbox.com/s/elel8y152u7qptq/LoadImageAsynchronousSample.zip" target="_blank">Here LoadImageAsynchronousSample demo app available to <span style="color: blue;"><b>download</b></span></a><br />
<br />
<span style="color: #990000;"><u>Algorithm<b>:</b></u></span><br />
<span style="color: #990000;"><i>Step 1: Subclass UIImageView and add a method to this class to load image asynchronously.</i></span><br />
<span style="color: #990000;"><i>Step 2: Add a placeholder default image to this imageview initially, until you get actual image from service(url).</i></span><br />
<br />
<span style="color: #990000;"><i>Step 3: Create an object of NSURLRequest so as to invoke asynchronous service call and implement NSURLConnection Methods delegate methods so as to handle response.</i></span><br />
<span style="color: #990000;"><i>Step 4: Once you get response successfully from service just load that image(data) to your imageview.</i></span><br />
<br />
<u>LoadImageAsynchronously.h file is as below</u>,<br />
<br />
<span style="color: #073763;">#import <UIKit/UIKit.h></span><br />
<span style="color: #073763;">@interface LoadImageAsynchronously : UIImageView{</span><br />
<span style="color: #073763;"> NSURLConnection *connection;</span><br />
<span style="color: #073763;"> NSMutableData *data;</span><br />
<span style="color: #073763;">}</span><br />
<span style="color: #073763;">- (void)loadImageAsyncFromURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImg; //method to load image asynchronously</span><br />
<span style="color: #073763;">@end</span><br />
<span style="color: #073763;"><br /></span>
<i style="color: #990000;"><b>loadImageAsyncFromURL</b> method you need to call from your class file where ever you want to load an image from a url, this method accepts 2 paramaters one is your image <b>url</b> from where you want to load another is <b>placeholderImg</b> which is to fill your image view with some local default image from your project bundle initially until and unless you get the actual image from your image url.</i><br />
<i style="color: #990000;"><br /></i>
<u>LoadImageAsynchronously.m file is as below</u>,<br />
<span style="color: #073763;"><br /></span>
<br />
<div class="p1">
<span style="color: #073763;"><span class="s1">#import </span>"LoadImageAsynchronously.h"</span></div>
<div class="p2">
<span style="color: #073763;"><span class="s2">@implementation</span> LoadImageAsynchronously</span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p3">
<span style="color: #073763;">- (<span class="s2">id</span>)initWithFrame:(<span class="s3">CGRect</span>)frame</span></div>
<div class="p3">
<span style="color: #073763;">{</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s2">self</span> = [<span class="s2">super</span> <span class="s4">initWithFrame</span>:frame];</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s2">if</span> (<span class="s2">self</span>) {</span></div>
<div class="p4">
<span style="color: #073763;"> }</span></div>
<div class="p5">
<span style="color: #073763;"><span class="s5"> </span>return<span class="s5"> </span>self<span class="s5">;</span></span></div>
<div class="p3">
<span style="color: #073763;">}</span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p6">
<span style="color: #073763;">#pragma mark - LoadImageAsyncFromURL Method</span></div>
<div class="p3">
<span style="color: #073763;">- (<span class="s2">void</span>)loadImageAsyncFromURL:(<span class="s3">NSURL</span> *)url placeholderImage:(<span class="s3">UIImage</span> *)placeholderImg{</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s2">if</span>(placeholderImg)</span></div>
<div class="p3">
<span style="color: #073763;"> {</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s2">self</span>.<span class="s3">image</span>=placeholderImg; //placeholderImg is a local image inside project bundle</span></div>
<span style="color: #073763;">
</span>
<br />
<div class="p3">
<span style="color: #073763;"> }</span></div>
<div class="p2">
<span style="color: #073763;"> </span></div>
<div class="p7">
<span style="color: #073763;"><span class="s5"> </span><span class="s3">NSURLRequest</span><span class="s5"> *request=[[</span><span class="s3">NSURLRequest</span><span class="s5"> </span>alloc<span class="s5">] </span>initWithURL<span class="s5">:url </span>cachePolicy<span class="s5">:</span>NSURLRequestReloadIgnoringLocalCacheData<span class="s5"> </span>timeoutInterval<span class="s5">:</span><span class="s6">90.0</span><span class="s5">];</span></span></div>
<div class="p8">
<span style="color: #073763;"><span class="s5"> </span><span class="s2">if</span><span class="s5">(</span>connection<span class="s5">)</span></span></div>
<div class="p3">
<span style="color: #073763;"> {</span></div>
<div class="p3">
<span style="color: #073763;"> [<span class="s7">connection</span> <span class="s4">cancel</span>];</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s7">connection</span>=<span class="s2">nil</span>;</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s7">data</span>=<span class="s2">nil</span>;</span></div>
<div class="p3">
<span style="color: #073763;"> }</span></div>
<div class="p7">
<span style="color: #073763;"><span class="s5"> </span><span class="s7">connection</span><span class="s5">=[[</span><span class="s3">NSURLConnection</span><span class="s5"> </span>alloc<span class="s5">] </span>initWithRequest<span class="s5">:request </span>delegate<span class="s5">:</span><span class="s2">self</span><span class="s5"> </span>startImmediately<span class="s5">:</span><span class="s2">YES</span><span class="s5">];</span></span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p3">
<span style="color: #073763;">}</span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p6">
<span style="color: #073763;">#pragma mark - NSURLConnection Methods</span></div>
<div class="p3">
<span style="color: #073763;">- (<span class="s2">void</span>)connection:(<span class="s3">NSURLConnection</span> *)connection didReceiveResponse:(<span class="s3">NSURLResponse</span> *)response {</span></div>
<div class="p7">
<span style="color: #073763;"><span class="s5"><span class="Apple-tab-span"></span> [</span><span class="s7">data</span><span class="s5"> </span>setLength<span class="s5">:</span><span class="s6">0</span><span class="s5">];</span></span></div>
<div class="p3">
<span style="color: #073763;">}</span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p3">
<span style="color: #073763;">- (<span class="s2">void</span>)connection:(<span class="s3">NSURLConnection</span> *)theConnection didReceiveData:(<span class="s3">NSData</span> *)incrementalData </span></div>
<div class="p3">
<span style="color: #073763;">{</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s2">if</span> (<span class="s7">data</span> == <span class="s2">nil</span>)</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s7">data</span> = [[<span class="s3">NSMutableData</span> <span class="s4">alloc</span>] <span class="s4">init</span>];</span></div>
<div class="p3">
<span style="color: #073763;"> [<span class="s7">data</span> <span class="s4">appendData</span>:incrementalData];</span></div>
<div class="p2">
<span style="color: #073763;"> </span></div>
<div class="p3">
<span style="color: #073763;">}</span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p3">
<span style="color: #073763;">- (<span class="s2">void</span>)connectionDidFinishLoading:(<span class="s3">NSURLConnection</span> *)theConnection</span></div>
<div class="p3">
<span style="color: #073763;">{</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s3">UIImage</span> *image=[<span class="s3">UIImage</span> <span class="s4">imageWithData</span>:<span class="s7">data</span>]; //image data from service(url)</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s2">if</span>(image){</span></div>
<div class="p3">
<span style="color: #073763;"> <span class="s2">self</span>.<span class="s3">image</span>=image;</span></div>
<div class="p3">
<span style="color: #073763;"> }</span></div>
<div class="p4">
<span style="color: #073763;"><span class="s5"> </span><span class="s7">data</span><span class="s5">=</span><span class="s2">nil</span><span class="s5">;</span>//so as to flush any cache data</span></div>
<div class="p4">
<span style="color: #073763;"><span class="s5"> </span><span class="s7">connection</span><span class="s5">=</span><span class="s2">nil</span><span class="s5">;</span>//so as to flush any cache data</span></div>
<div class="p3">
<span style="color: #073763;">}</span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p3">
<span style="color: #073763;">- (<span class="s2">void</span>)connection:(<span class="s3">NSURLConnection</span> *)connection didFailWithError:(<span class="s3">NSError</span> *)error {</span></div>
<div class="p1">
<span style="color: #073763;"><span class="s5"></span><span class="s4"> NSLog</span><span class="s5">(</span>@"Connection failed: %@"<span class="s5">, [error </span><span class="s4">description</span><span class="s5">]);</span></span></div>
<div class="p3">
<span style="color: #073763;">}</span></div>
<div class="p3">
<span style="color: #073763;"><br /></span></div>
<div class="p3">
<span style="color: #990000;">and finally in your calling class just import</span><span style="color: #073763;"> </span><span style="color: #990000;">LoadImageAsynchronously.h file <span class="s1">and create an object of </span>LoadImageAsynchronously class as below,</span></div>
<div class="p3">
</div>
<div class="p1">
<span style="color: #073763;"><span class="s1"><br /></span></span></div>
<div class="p1">
<span style="color: #073763;"><span class="s1">#import </span><UIKit/UIKit.h></span></div>
<div class="p1">
<span style="color: #073763;"><span class="s1">#import </span>"LoadImageAsynchronously.h"</span></div>
<div class="p2">
<span class="s2" style="color: #073763;">@interface</span><span style="color: #073763;"> ViewController : </span><span class="s3" style="color: #073763;">UIViewController</span></div>
<div class="p3">
<span style="color: #073763;">{</span></div>
<div class="p4">
<span style="color: #073763;"><span class="s4"> </span>LoadImageAsynchronously<span class="s4"> *myImageView;</span></span></div>
<div class="p3">
<span style="color: #073763;">}</span></div>
<div class="p2">
<span style="color: #073763;">@end</span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p2">
</div>
<div class="p1">
<span style="color: #990000;"><span class="s1">finally pass your image url and call </span><span class="s2">loadImageAsyncFromURL method of </span>LoadImageAsynchronously class as below,</span></div>
<br />
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p2">
</div>
<div class="p1">
<span style="color: #073763;"><span class="s1">#import </span>"ViewController.h"</span></div>
<br />
<div class="p2">
</div>
<div class="p1">
<span style="color: #073763;"><span class="s1">@implementation</span> ViewController</span></div>
<div class="p2">
<span style="color: #073763;"><br /></span></div>
<div class="p2">
<span style="color: #073763;">- (<span class="s1">void</span>)viewDidLoad</span></div>
<div class="p1">
<span style="color: #073763;">{</span></div>
<div class="p3">
<span style="color: #073763;"><span class="s2"> [</span><span class="s1">super</span><span class="s2"> </span>viewDidLoad<span class="s2">];</span></span></div>
<div class="p4">
<span style="color: #073763;"><span class="s2"> </span><span class="s3">NSString</span><span class="s2"> *imageURL = </span>@"http://www.gstatic.com/webp/gallery/1.jpg"<span class="s2">;</span><span class="s4">//image url</span></span></div>
<div class="p1">
<span style="color: #073763;"> <span class="s3">UIImage</span> *defaultPlaceholderImg = [<span class="s3">UIImage</span> <span class="s5">imageNamed</span>:<span class="s6">@"default_image.jpeg"</span>];<span class="s4">//from local bundle</span></span></div>
<div class="p5">
<span style="color: #073763;"><span class="s2"> </span>myImageView<span class="s2">=[[</span>LoadImageAsynchronously<span class="s2"> </span><span class="s5">alloc</span><span class="s2">] </span><span class="s5">initWithFrame</span><span class="s2">:</span><span class="s5">CGRectMake</span><span class="s2">(</span><span class="s7">20.0</span><span class="s2">, </span><span class="s7">20.0</span><span class="s2">, </span><span class="s7">200.0</span><span class="s2">, </span><span class="s7">200.0</span><span class="s2">)];</span></span></div>
<div class="p3">
<span style="color: #073763;"><span class="s2"> </span><span class="s8">myImageView</span><span class="s2">.</span><span class="s3">contentMode</span><span class="s2">=</span>UIViewContentModeScaleAspectFill<span class="s2">;</span></span></div>
<div class="p6">
<span style="color: #073763;"><span class="s2"> </span><span class="s8">myImageView</span><span class="s2">.</span>clipsToBounds<span class="s2">=</span><span class="s1">true</span><span class="s2">;</span></span></div>
<div class="p1">
<span style="color: #073763;"> <span class="s3">NSURL</span> *url = [<span class="s3">NSURL</span> <span class="s5">URLWithString</span>:imageURL];</span></div>
<div class="p7">
<span style="color: #073763;"><span class="s2"> [</span><span class="s8">myImageView</span><span class="s2"> </span>loadImageAsyncFromURL<span class="s2">:url </span>placeholderImage<span class="s2">:defaultPlaceholderImg]; </span>//UIImageView subclass method</span></div>
<div class="p5">
<span style="color: #073763;"><span class="s2"> [</span><span class="s1">self</span><span class="s2">.</span><span class="s3">view</span><span class="s2"> </span><span class="s5">addSubview</span><span class="s2">:</span>myImageView<span class="s2">];</span></span></div>
<div class="p1">
<span style="color: #073763;">}</span></div>
<div class="p1">
<span style="color: #073763;"><br /></span></div>
<div class="p1">
</div>
<div class="p1">
<span style="color: #073763;">@end</span></div>
<div class="p1">
<span style="color: #073763;"><br /></span></div>
<div class="p1">
<span style="color: #990000;">and thats it, hope you enjoyed the post, any pros or cons or suggestions is appreciated and accepted in advance, thank you,,,, :-)</span></div>
<br />
<br />
<br />
<br /></div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com4tag:blogger.com,1999:blog-1383588507317276034.post-78785938451016732482013-01-02T06:39:00.002-08:002013-02-07T23:01:45.159-08:00Class and Objects in OOP Language<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">This post is specifically for a newbie for an object oriented programming(</span><span style="font-family: Verdana, sans-serif;">OOP</span><span style="font-family: Verdana, sans-serif;">), this is about what is a class and object in an OOP Language along with an example,</span></div>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">A class is a definition of an object.Its a combination of data representation(variables) and method declaration.The data and methods within a class are called members of class.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">A Class is a type just like a int.</span></div>
<div class="p3">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">Object is an instance of a class. or we can say an object is just a variable of a class.</span></div>
<div class="p3">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">say for ex:</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">1) int a; // here "int" is a type, "a" is a variable of type int </span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">so w.r.t above example int specifies a class and 'a' specifies a Object of a class int.</span></div>
<div class="p3">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">2) A real world example for class and objects </span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">Consider species birds, under birds species n number of animals will comes all those are objects of class birds.</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">say, Birds - Class</span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">sparrow,ostrich,parrots,penguins etc etc are objects of class Birds </span></div>
<div class="p3">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Verdana, sans-serif;">Now we can come to a conclusion that an object is a real world entity which has its own characteristics,and originated from a type of class.</span></div>
<div class="p3">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p4">
<span style="font-family: Verdana, sans-serif;">A class definition starts with the keyword class followed by the class name; and the class body, enclosed by a pair of curly braces. A class definition must be followed either by a semicolon or a list of declarations.</span></div>
<div class="p5">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p6">
<span style="font-family: Verdana, sans-serif;">example:-</span></div>
<div class="p6">
<span style="color: blue; font-family: Verdana, sans-serif;">class</span><span style="color: #660000; font-family: Verdana, sans-serif;"> Birds</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;">{</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>public:</span></div>
<div class="p6">
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float</span><span style="color: #660000; font-family: Verdana, sans-serif;"> age;</span></div>
<div class="p6">
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>float</span><span style="color: #660000; font-family: Verdana, sans-serif;"> weight; </span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;">};</span></div>
<div class="p5">
<span style="color: #660000; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;">int main()</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;">{</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>Birds *parrot; //parrot of Class Birds</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>Birds *penguin; //penguin of Class Birds</span></div>
<div class="p5">
<span style="color: #660000; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>parrot.age = 3;</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>parrot.weight = 5;</span></div>
<div class="p5">
<span class="Apple-tab-span"><span style="color: #660000; font-family: Verdana, sans-serif;"> </span></span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>penguin.age = 8;</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>penguin.weight = 12;</span></div>
<div class="p5">
<span style="color: #660000; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>cout << "parrot is an object of class Birds, and its age is"<<</span><span style="color: #38761d; font-family: Verdana, sans-serif;">parrot.age</span><span style="color: #660000; font-family: Verdana, sans-serif;"><<"years old and weight is"<<</span><span style="color: #38761d; font-family: Verdana, sans-serif;">parrot.weight </span><span style="color: #660000; font-family: Verdana, sans-serif;"><<"kgs";</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>cout << "penguin is an object of class Birds, and its age is"<<</span><span style="color: #38761d; font-family: Verdana, sans-serif;">penguin.age</span><span style="color: #660000; font-family: Verdana, sans-serif;"><<"years old and weight is"<<</span><span style="color: #38761d; font-family: Verdana, sans-serif;">penguin.weight</span><span style="color: #660000; font-family: Verdana, sans-serif;"> <<"Kgs";</span></div>
<div class="p5">
<span style="color: #660000; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><span class="Apple-tab-span"> </span>return 0;</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;">}</span></div>
<div class="p6">
<span style="color: #660000; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p6">
<span style="font-family: Verdana, sans-serif;"><u>The output of the above example program is as below:</u></span></div>
<div class="p6">
<span style="color: #0b5394; font-family: Verdana, sans-serif;">parrot is an object of class Birds, and its age is 3 years old and weight is 5 kgs.</span></div>
<div class="p6">
</div>
<div class="p1" style="text-align: left;">
<span style="color: #0b5394; font-family: Verdana, sans-serif;">penguin is an object of class Birds, and its age is 8 years old and weight is 12 kgs.</span></div>
<div class="p1" style="text-align: left;">
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">the properties of an object can be accessed by the help of dot(.) operator as shown in above example like parrot.age</span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="p1" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">Hope you guys enjoyed the post,any comments or suggestions is acceptable.</span></div>
<br /></div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com0Bangalore, Karnataka, India12.9715987 77.59456269999998312.4764147 76.949115699999979 13.4667827 78.240009699999987tag:blogger.com,1999:blog-1383588507317276034.post-67645720227924701572012-12-26T07:17:00.000-08:002013-11-19T00:11:02.026-08:00AHSStarRating for iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<h2 style="text-align: left;">
<span class="s1"><u>AHSStarRating for iOS</u></span></h2>
<h3>
<span class="s1"><u><i><span style="color: #351c75;">iOS star Rating with a different logic :</span></i></u></span></h3>
<div class="p1">
</div>
<div class="p1">
<span style="color: #351c75;">Hi friends in this blog post i'm going to explain you that how to create a rating control(say, 5 star rating) by the help of touch events. Below is a snapshot of AHSStarRating,</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZu12M0KSgVS166c5dXCy16ZUzq-aHdThGup8llCqe82xw7PRnahC2zhEEtfwYpVHZiJLWcNXpA7Ds6dHSWJtwTxht20puXPM5_EWah4fKCIZM-KJsCr_zYEXUz8-QxiS8tkqz5m2plL4C/s1600/AHSStarRating_SnapShot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZu12M0KSgVS166c5dXCy16ZUzq-aHdThGup8llCqe82xw7PRnahC2zhEEtfwYpVHZiJLWcNXpA7Ds6dHSWJtwTxht20puXPM5_EWah4fKCIZM-KJsCr_zYEXUz8-QxiS8tkqz5m2plL4C/s320/AHSStarRating_SnapShot.png" width="170" /></a></div>
<div class="p1">
<span style="color: purple;"><br /></span></div>
<div class="p1">
<span style="color: purple;"><br /></span></div>
<div class="p1">
<span style="color: #351c75;">From this logic you can able to rate even fractions & no need of n number of star images just a single image as below is sufficient.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcm_hi5PoRCbd2HdMI_MluDv9b4ocGP979DI0E8xsDhi5VX6d2_Ym-oGRmh0lcURL0xIP9LrVKpjk2FEu58feYTvm8ogmQf2w8qlsNC_Yaka-sAeZYr6y0zpxDtdOCVSkpXGzc9DJ8DnH-/s1600/starRatingImg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcm_hi5PoRCbd2HdMI_MluDv9b4ocGP979DI0E8xsDhi5VX6d2_Ym-oGRmh0lcURL0xIP9LrVKpjk2FEu58feYTvm8ogmQf2w8qlsNC_Yaka-sAeZYr6y0zpxDtdOCVSkpXGzc9DJ8DnH-/s1600/starRatingImg.png" /></a></div>
<div class="p1">
<br /></div>
<br />
<div class="p1">
<span style="color: #351c75;"><span class="Apple-tab-span"> </span>pros:</span></div>
<div class="p1">
<span style="color: #351c75;">1. Since we need only 1 image, bundle size will be reduced.</span></div>
<div class="p1">
<span style="color: #351c75;"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>2. You can rate (& get) even fraction values.</span></div>
<div class="p1">
<a href="https://www.dropbox.com/s/nnyvp93m2h6l317/AHSStarRating.zip" target="_blank"><span style="color: purple;">here is a sample project AHSStarRating which you can </span><span style="color: blue;"><b>download</b></span></a></div>
<div class="p2">
<br /></div>
<div class="p2">
<br /></div>
<div class="p1">
<span style="color: #20124d;">Coming to the logic i have a rating control class called <span class="s2">AHSRatingView </span>which is a subclass of UIView, this rating control class you can add to any of viewController class like below,</span></div>
<div class="p1">
<span style="color: #351c75;"><br /></span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">void</span>)viewDidLoad</span></div>
<div class="p3">
<span style="color: purple;">{</span></div>
<div class="p4">
<span style="color: purple;"><span class="s4"> [</span><span class="s3">super</span><span class="s4"> </span>viewDidLoad<span class="s4">];</span></span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">UIImage</span> *ratingImg = [<span class="s5">UIImage</span> <span class="s6">imageNamed</span>:<span class="s7">@"starRatingImg"</span>];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">ahsRatingVw</span> = [[<span class="s8">AHSRatingView</span> <span class="s6">alloc</span>] <span class="s9">initWithFrame</span>:<span class="s6">CGRectMake</span>(<span class="s10">10.0</span>, <span class="s10">100.0</span>, ratingImg.<span class="s5">size</span>.<span class="s5">width</span>, ratingImg.<span class="s5">size</span>.<span class="s5">height</span>) <span class="s9">andStarColor</span>:[<span class="s5">UIColor</span> <span class="s6">redColor</span>]];</span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> </span>ahsRatingVw<span class="s4">.</span>delegate<span class="s4"> = </span><span class="s3">self</span><span class="s4">;</span></span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> [</span><span class="s3">self</span><span class="s4">.</span><span class="s5">view</span><span class="s4"> </span><span class="s6">addSubview</span><span class="s4">:</span>ahsRatingVw<span class="s4">];</span></span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p6">
<br /></div>
<div class="p1">
<span style="color: #351c75;">their is a custom init method called "<span class="s11">initWithFrame: andStarColor:</span>" in <span class="s2">AHSRatingView </span>which you need to call so as to show rating control, <span class="s11">initWithFrame: </span>accepts a cgrect parameter where we will pass a CGRect for rate control its a good idea to get your rating image dimensions & set those width & height values, & <span class="s11">andStarColor: </span>accepts a UIColor type of parameter where yo can pass any of UIColor you wish, this color will be your rating star color.</span></div>
<div class="p1">
<span style="color: #351c75;">After this just set the delegate "AHSRating" in your viewController class file as below so as to get the user rating value from the AHSRatingView(rating control),</span></div>
<div class="p7">
<br /></div>
<div class="p3">
<span style="color: purple;"><span class="s3">@interface</span> ViewController : <span class="s5">UIViewController</span><<span class="s8">AHSRating</span>></span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p8">
<span class="s3" style="color: purple;">@property</span><span class="s4" style="color: purple;"> (</span><span class="s3" style="color: purple;">retain</span><span class="s4" style="color: purple;">, </span><span class="s3" style="color: purple;">nonatomic</span><span class="s4" style="color: purple;">) </span><span class="s3" style="color: purple;">IBOutlet</span><span class="s4" style="color: purple;"> </span><span class="s5" style="color: purple;">UILabel</span><span class="s4"><span style="color: purple;"> *ahsRatingCountLbl;</span><span style="color: #351c75;"> </span></span><span style="color: #351c75;">//property to get user rated value</span></div>
<div class="p6">
<br /></div>
<div class="p1">
<span style="color: #351c75;">and in your viewController implementation file if you wanna want to display user rated value just define AHSRatingView delegate method as below or you can make use of this count for further processing as per your application requirement, below is the snippet where as of now we are just updating user rated value to a UILabel.</span></div>
<div class="p6">
<br /></div>
<div class="p9">
<span style="color: purple;">#pragma mark - AHSRating Delegate</span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">void</span>)getRatingCount:(<span class="s3">float</span>)rateCount{</span></div>
<div class="p10">
<span style="color: purple;"><span class="s4"> </span><span class="s8">ahsRatingCountLbl</span><span class="s4">.</span><span class="s5">text</span><span class="s4"> = [</span><span class="s5">NSString</span><span class="s4"> </span><span class="s6">stringWithFormat</span><span class="s4">:</span>@"your rating count is %f"<span class="s4">,rateCount];</span></span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p6">
<br /></div>
<div class="p1">
<span style="color: #351c75;">thats it in your calling class.</span></div>
<div class="p2">
<br /></div>
<div class="p1">
<span style="color: #351c75;">Now coming to AHSRatingView, this is the main rating control, below is the snapshot of AHSRatingView interface file which you can refer,</span></div>
<div class="p11">
<u style="color: red;"><br /></u></div>
<div class="p11">
<u style="color: red;">AHSRatingView.h</u></div>
<div class="p10">
<span style="color: purple;"><span class="s12">#import </span><UIKit/UIKit.h></span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p3">
<span style="color: purple;"><span class="s3">@protocol</span> AHSRating <<span class="s5">NSObject</span>></span></div>
<div class="p13">
<span style="color: purple;">@optional</span></div>
<div class="p3">
<span style="color: purple;"> - (<span class="s3">void</span>)getRatingCount:(<span class="s3">float</span>)rateCount;</span></div>
<div class="p13">
<span style="color: purple;">@end</span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p3">
<span style="color: purple;"><span class="s3">@interface</span> AHSRatingView : <span class="s5">UIView</span></span></div>
<div class="p3">
<span style="color: purple;">{</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">UIImageView</span> *ratingImgVw;</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">CGPoint</span> startPoint;</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">CGPoint</span> endPoint;</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">UIView</span> *fillColorView;</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">CGFloat</span> ratingViewFrameWidth;</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">CGFloat</span> singleStarRect;</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">CGFloat</span> currentStarRating;</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">UIColor</span> *ratingColor;</span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p6">
<span style="color: purple;">@property</span><span class="s4" style="color: purple;">(</span><span style="color: purple;">nonatomic</span><span class="s4" style="color: purple;">,</span><span style="color: purple;">retain</span><span class="s4" style="color: purple;">) </span><span style="color: purple;">id</span><span class="s4" style="color: purple;"><</span><span class="s8" style="color: purple;">AHSRating</span><span class="s4" style="color: purple;">> delegate;</span></div>
<div class="p6">
<span style="color: purple;">- (</span><span class="s3" style="color: purple;">id</span><span style="color: purple;">)initWithFrame:(</span><span class="s5" style="color: purple;">CGRect</span><span style="color: purple;">)frame andStarColor:(</span><span class="s5" style="color: purple;">UIColor</span><span style="color: purple;"> *)color;</span></div>
<div class="p6">
<span style="color: purple;">@end</span></div>
<div class="p2">
<br /></div>
<div class="p1">
<span style="color: #351c75;">here in interface file we are having instance variables which are required first is object </span><span class="s2">ratingImgVw </span><span style="color: #351c75;">of type UIImageView so as to hold your rating image, </span><span class="s2">startPoint</span><span style="color: #351c75;"> & </span><span class="s2">endPoint</span><span style="color: #351c75;"> is of type CGPoint so as to capture user touch points, </span><span class="s2">fillColorView</span><span style="color: #351c75;"> is of UIView type so as to fill (rate) stars, </span><span class="s2">ratingViewFrameWidth</span>, <span class="s2">singleStarRect, currentStarRating</span><span class="s2" style="color: #351c75;"> </span><span style="color: #351c75;">are iVars for core user rating calculation(logic),</span><span class="s2" style="color: #351c75;"> </span><span class="s2">ratingColor</span><span class="s2" style="color: #351c75;"> </span><span style="color: #351c75;">is of type UIColor which will effect to stars. </span></div>
<div class="p1">
<span style="color: #351c75;">and on top there is a </span>protocol definition<span style="color: #351c75;"> which is defined just to update calling class with user rated value whenever he rates.</span></div>
<div class="p1">
<span style="color: #351c75;"><br /></span></div>
<div class="p1">
<span style="color: #351c75;">Below is the snapshot of </span>AHSRatingView implementation<span style="color: #351c75;"> file which you can refer,</span></div>
<div class="p12">
<span class="s1"><u><span style="color: red;"><br /></span></u></span></div>
<div class="p12">
<span class="s1"><u><span style="color: red;">AHSRatingView.m</span></u></span></div>
<div class="p10">
<span style="color: purple;"><span class="s12">#import </span>"AHSRatingView.h"</span></div>
<div class="p9">
<span style="color: purple;">#define kNumberOfStars <span class="s10">5</span></span></div>
<div class="p9">
<span style="color: purple;">#define kdefaultFillColor [UIColor blueColor]</span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p3">
<span style="color: purple;"><span class="s3">@interface</span> AHSRatingView(Private)</span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">void</span>)rating;</span></div>
<div class="p13">
<span style="color: purple;">@end</span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p13">
<span style="color: purple;">@implementation<span class="s4"> AHSRatingView</span></span></div>
<div class="p13">
<span style="color: purple;">@synthesize<span class="s4"> delegate;</span></span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">id</span>)initWithFrame:(<span class="s5">CGRect</span>)frame andStarColor:(<span class="s5">UIColor</span> *)color{</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s3">self</span> = [<span class="s3">super</span> <span class="s6">initWithFrame</span>:frame];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s3">if</span> (<span class="s3">self</span>) {</span></div>
<div class="p14">
<span style="color: purple;"><span class="s4"> </span>//initilization code</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s3">self</span>.<span class="s5">clipsToBounds</span> = <span class="s3">YES</span>;</span></div>
<div class="p6">
<span style="color: purple;"> </span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">ratingColor</span> = color;</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s3">if</span> (!<span class="s8">ratingColor</span>) {</span></div>
<div class="p9">
<span style="color: purple;"><span class="s4"> </span><span class="s8">ratingColor</span><span class="s4"> = </span>kdefaultFillColor<span class="s4">;</span></span></div>
<div class="p3">
<span style="color: purple;"> }</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">ratingImgVw</span>=[[<span class="s5">UIImageView</span> <span class="s6">alloc</span>] <span class="s6">initWithFrame</span>:<span class="s6">CGRectMake</span>(<span class="s10">0</span>, <span class="s10">0</span>, frame.<span class="s5">size</span>.<span class="s5">width</span>, frame.<span class="s5">size</span>.<span class="s5">height</span>)];</span></div>
<div class="p4">
<span style="color: purple;"><span class="s4"> </span><span class="s8">ratingImgVw</span><span class="s4">.</span><span class="s5">contentMode</span><span class="s4">=</span>UIViewContentModeScaleToFill<span class="s4">;</span></span></div>
<div class="p10">
<span style="color: purple;"><span class="s4"> </span><span class="s8">ratingImgVw</span><span class="s4">.</span><span class="s5">image</span><span class="s4">=[</span><span class="s5">UIImage</span><span class="s4"> </span><span class="s6">imageNamed</span><span class="s4">:</span>@"starRatingImg"<span class="s4">];</span></span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">ratingImgVw</span>.<span class="s5">clipsToBounds</span> = <span class="s3">YES</span>;</span></div>
<div class="p3">
<span style="color: purple;"> [<span class="s3">self</span> <span class="s6">addSubview</span>:<span class="s8">ratingImgVw</span>];</span></div>
<div class="p6">
<span style="color: purple;"> </span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> </span>ratingViewFrameWidth<span class="s4"> = </span><span class="s3">self</span><span class="s4">.</span><span class="s5">frame</span><span class="s4">.</span><span class="s5">size</span><span class="s4">.</span><span class="s5">width</span><span class="s4">;</span></span></div>
<div class="p3">
<span style="color: purple;"> }</span></div>
<div class="p13">
<span style="color: purple;"><span class="s4"> </span>return<span class="s4"> </span>self<span class="s4">;</span></span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p9">
<span style="color: purple;">#pragma mark - Touch Events Methods</span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">void</span>)touchesBegan:(<span class="s5">NSSet</span> *)touches withEvent:(<span class="s5">UIEvent</span> *)event</span></div>
<div class="p3">
<span style="color: purple;">{</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">UITouch</span> *touch = [touches <span class="s6">anyObject</span>];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">CGPoint</span> point = [touch <span class="s6">locationInView</span>:<span class="s3">self</span>];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">startPoint</span> = point;</span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">void</span>)touchesMoved:(<span class="s5">NSSet</span> *)touches withEvent:(<span class="s5">UIEvent</span> *)event</span></div>
<div class="p3">
<span style="color: purple;">{</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">UITouch</span> *touch = [touches <span class="s6">anyObject</span>];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">CGPoint</span> point = [touch <span class="s6">locationInView</span>:<span class="s3">self</span>];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">endPoint</span> = point;</span></div>
<div class="p3">
<span style="color: purple;"> [<span class="s3">self</span> <span class="s9">rating</span>];</span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">void</span>)touchesEnded:(<span class="s5">NSSet</span> *)touches withEvent:(<span class="s5">UIEvent</span> *)event{</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">UITouch</span> *touch = [touches <span class="s6">anyObject</span>];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s5">CGPoint</span> point = [touch <span class="s6">locationInView</span>:<span class="s3">self</span>];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">endPoint</span> = point;</span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> </span>singleStarRect<span class="s4"> = </span>ratingViewFrameWidth<span class="s4">/</span><span class="s12">kNumberOfStars</span><span class="s4">;</span><span class="s13">//get each single star rect(width)</span></span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> </span>currentStarRating<span class="s4"> = </span>endPoint<span class="s4">.</span><span class="s5">x</span><span class="s4">/</span>singleStarRect<span class="s4">;</span><span class="s13">//get rating value</span></span></div>
<div class="p6">
<span style="color: purple;"> </span></div>
<div class="p14">
<span style="color: purple;"><span class="s4"> </span>/* handling exception */</span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> </span><span class="s3">if</span><span class="s4"> (</span>currentStarRating<span class="s4"> > </span><span class="s10">5.0</span><span class="s4">) {</span></span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> </span>currentStarRating<span class="s4"> = </span><span class="s10">5.0</span><span class="s4">;</span></span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> }</span><span class="s3">else</span><span class="s4"> </span><span class="s3">if</span><span class="s4">(</span>currentStarRating<span class="s4"> < </span><span class="s10">0.0</span><span class="s4">){</span></span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> </span>currentStarRating<span class="s4"> = </span><span class="s10">0.0</span><span class="s4">;</span></span></div>
<div class="p3">
<span style="color: purple;"> }</span></div>
<div class="p6">
<span style="color: purple;"> </span></div>
<div class="p3">
<span style="color: purple;"> <span class="s3">if</span> (<span class="s8">delegate</span>) {</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s3">if</span> ([<span class="s8">delegate</span> <span class="s6">respondsToSelector</span>:<span class="s3">@selector</span>(getRatingCount:)]) {</span></div>
<div class="p5">
<span style="color: purple;"><span class="s4"> [</span>delegate<span class="s4"> </span><span class="s9">getRatingCount</span><span class="s4">:</span>currentStarRating<span class="s4">];</span></span></div>
<div class="p3">
<span style="color: purple;"> }</span></div>
<div class="p3">
<span style="color: purple;"> }</span></div>
<div class="p3">
<span style="color: purple;"> [<span class="s3">self</span> <span class="s9">rating</span>];</span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p14">
<span style="color: purple;">/* cancel in the sense on touch event if a call comes then this method ll trigger */</span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">void</span>)touchesCancelled:(<span class="s5">NSSet</span> *)touches withEvent:(<span class="s5">UIEvent</span> *)event{</span></div>
<div class="p14">
<span style="color: purple;"><span class="s4"> </span>/* handle ur exception code */</span></div>
<div class="p10">
<span style="color: purple;"><span class="s4"> </span><span class="s6">NSLog</span><span class="s4">(</span>@"Touches Cancelled"<span class="s4">);</span></span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p6">
<span style="color: purple;"><br /></span></div>
<div class="p9">
<span style="color: purple;">#pragma mark - Rating Method</span></div>
<div class="p3">
<span style="color: purple;">- (<span class="s3">void</span>)rating{</span></div>
<div class="p4">
<span style="color: purple;"><span class="s4"> [</span><span class="s5">UIView</span><span class="s4"> </span>animateWithDuration<span class="s4">:</span><span class="s10">0.50</span></span></div>
<div class="p3">
<span style="color: purple;"> <span class="s6">delay</span>:<span class="s10">0.0</span></span></div>
<div class="p4">
<span style="color: purple;"><span class="s4"> </span>options<span class="s4">: </span>UIViewAnimationCurveLinear</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s6">animations</span>:^{</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s3">if</span> (<span class="s8">fillColorView</span>) {</span></div>
<div class="p3">
<span style="color: purple;"> [<span class="s8">fillColorView</span> <span class="s6">removeFromSuperview</span>];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">fillColorView</span> = <span class="s3">nil</span>;</span></div>
<div class="p3">
<span style="color: purple;"> }</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">fillColorView</span> = [[<span class="s5">UIView</span> <span class="s6">alloc</span>] <span class="s6">initWithFrame</span>:<span class="s6">CGRectMake</span>(<span class="s10">0.0</span>, <span class="s10">0.0</span>, <span class="s8">endPoint</span>.<span class="s5">x</span>, <span class="s3">self</span>.<span class="s5">frame</span>.<span class="s5">size</span>.<span class="s5">height</span>)];</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s8">fillColorView</span>.<span class="s5">backgroundColor</span> = <span class="s8">ratingColor</span>;</span></div>
<div class="p3">
<span style="color: purple;"> [<span class="s3">self</span> <span class="s6">addSubview</span>:<span class="s8">fillColorView</span>];</span></div>
<div class="p3">
<span style="color: purple;"> [<span class="s3">self</span> <span class="s6">sendSubviewToBack</span>:<span class="s8">fillColorView</span>]; </span></div>
<div class="p3">
<span style="color: purple;"> } </span></div>
<div class="p3">
<span style="color: purple;"> <span class="s6">completion</span>:^(<span class="s3">BOOL</span> finished){</span></div>
<div class="p3">
<span style="color: purple;"> <span class="s13">// NSLog(@"Done!");</span></span></div>
<div class="p3">
<span style="color: purple;"> }];</span></div>
<div class="p6">
<span style="color: purple;"> </span></div>
<div class="p3">
<span style="color: purple;">}</span></div>
<div class="p13">
<span style="color: purple;">@end</span></div>
<div class="p7">
<br /></div>
<div class="p1">
<span style="color: #351c75;">here in implementation file mainly we are dealing with touch events initially we will initialize our rating view with a rating image frame & a specified color, & we are getting the entire view frame width in </span><span class="s14">ratingViewFrameWidth</span><span class="s14" style="color: #351c75;"> </span><span style="color: #351c75;">iVar. Then we are capturing touch event by </span><span class="s2">touchesBegan:, touchesMoved: & touchesEnded: </span><span style="color: #351c75;">events. where in </span><span class="s2">touchesBegan</span><span class="s2" style="color: #351c75;">: </span><span style="color: #351c75;">we are capturing the starting point, </span><span class="s2">touchesMoved</span><span class="s2" style="color: #351c75;">: </span><span style="color: #351c75;">we are capturing the user swipe movement (points) & parallel updating star rating by calling "</span>rating<span style="color: #351c75;">" method, & in </span><span class="s2">touchesEnded<span style="color: #351c75;">: </span></span><span style="color: #351c75;">we are capturing the end Point & in parallel calculating the rate count & informing all delegates, & updating rate by calling "</span>rating<span style="color: #351c75;">" method.</span></div>
<div class="p2">
<span style="color: #351c75;"><br /></span></div>
<div class="p1">
<span style="color: #351c75;">rating instance method is actually updating ui by rating with specified color for stars.</span></div>
<div class="p2">
<span style="color: #351c75;"><br /></span></div>
<div class="p1">
and tats all, hope you enjoyed the post any comments either pros or cons or suggestions or whatever is acceptable from my side.</div>
<div class="p1">
Thank you,,,:-)</div>
<div class="p6">
<br /></div>
<div class="p6">
<br /></div>
</div>
Arun HShttp://www.blogger.com/profile/10847381578831923723noreply@blogger.com0Bangalore, Karnataka, India12.9715987 77.59456269999998312.4764147 76.949115699999979 13.4667827 78.240009699999987