tag:blogger.com,1999:blog-44708370255199714492024-03-24T16:32:07.808-07:00iOS BucketPradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-4470837025519971449.post-52129847933926100522016-06-18T12:46:00.001-07:002016-06-20T01:09:40.739-07:00UIDocumentPickerViewController and UIDocumentMenuViewController in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Times;
panose-1:2 0 5 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
@font-face
{font-family:"Menlo Regular";
panose-1:2 11 6 9 3 8 4 2 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-436198657 -771687941 33554472 0 479 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-fareast-font-family:"MS 明朝";
mso-bidi-font-family:"Times New Roman";}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-size:10.0pt;
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-fareast-font-family:"MS 明朝";
mso-hansi-font-family:Cambria;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:72.0pt 90.0pt 28.4pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:128785540;
mso-list-type:hybrid;
mso-list-template-ids:-801840536 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
<br />
<span style="font-family: "times"; mso-fareast-font-family: "Times New Roman";">A
document picker view controller is used to access the files from variety of the
sources like iCloud, dropbox, google drive etc. It provides the below following
main operation.</span>
<br />
<div class="MsoNormal">
<br /></div>
<ol start="1" style="margin-top: 0cm;" type="1">
<li class="MsoNormal" style="mso-list: l0 level1 lfo1;"><span style="font-family: "times"; mso-fareast-font-family: "Times New Roman";">Open</span></li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1;"><span style="font-family: "times"; mso-fareast-font-family: "Times New Roman";">Import</span><span style="font-family: "times";"></span></li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1;"><span style="font-family: "times"; mso-fareast-font-family: "Times New Roman";">Export </span><span style="font-family: "times";"></span></li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1;"><span style="font-family: "times"; mso-fareast-font-family: "Times New Roman";">Move</span><span style="font-family: "times";"></span></li>
</ol>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "times"; mso-fareast-font-family: "Times New Roman";">Today
we will learn how to achieve (mainly used Import and Export) this functionality
in our iOS apps for providing more option to user to perform operation with the
files.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: "times"; mso-fareast-font-family: "Times New Roman";">Importing a
file using document picker </span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">/** Create the array of
UTI Type that you want to support</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>* Pass the array of UTI Type that
application wants to support. Add more UTI Type if you want to support more
other than listed</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*/</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSArray</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *types = </span><span lang="EN-US" style="color: #1c00cf; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@[</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeImage</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeSpreadsheet</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypePresentation</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeDatabase</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeFolder</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeZipArchive</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeVideo</span><span lang="EN-US" style="color: #1c00cf; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">]</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">;</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Create a object of document picker view and set the mode to Import</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
*docPicker = [[</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">alloc</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">] </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">initWithDocumentTypes</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:types </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">inMode</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerModeImport</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Set the delegate</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>docPicker.</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">delegate</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
= </span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">;</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//present the document picker</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">presentViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:docPicker </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">animated</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">YES</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">completion</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">It will open the document
picker to import the file that match the given UTI Type. You can restrict the
specific file type according to your use.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsn10_jQgllKH65eD3LPBhxy4d1dya6tCZjIsKzbFiFYDXwAIPkwpMo2tp2-uUG0cxUEL0erzFzfvCqqXA1n8D14cqHp1nfCwn5hfNkc82HbGtY4odRvMcJnaSzUbCGuvGBxad3AsXaZ-U/s1600/IMG_0150.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsn10_jQgllKH65eD3LPBhxy4d1dya6tCZjIsKzbFiFYDXwAIPkwpMo2tp2-uUG0cxUEL0erzFzfvCqqXA1n8D14cqHp1nfCwn5hfNkc82HbGtY4odRvMcJnaSzUbCGuvGBxad3AsXaZ-U/s320/IMG_0150.jpg" width="179" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp8hYO7BX3a9XwbwaL2BG0SqykK3eNCdAfbRkPhA3TMGn0vSGlWx9ZUPrSwNjXRUK9pzPDZ15yhWj_1JGnrK_WXjaFZqQK3j1kHeShwB3bYiteG7mVnJIfRS7o-2loZ5KieUGJAQyzWKRF/s1600/IMG_0149.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp8hYO7BX3a9XwbwaL2BG0SqykK3eNCdAfbRkPhA3TMGn0vSGlWx9ZUPrSwNjXRUK9pzPDZ15yhWj_1JGnrK_WXjaFZqQK3j1kHeShwB3bYiteG7mVnJIfRS7o-2loZ5KieUGJAQyzWKRF/s320/IMG_0149.jpg" width="179" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2CxzMdbvy5XCpgIdTpmb9Bga_IGmkNIaG_MUGBVTz9VToB6fJ-CWd4oibd9l2jr8T9j4I-5hyphenhyphenoZWyaCSAdOSMwbqJ8nxLCrpFRycyZ0XEX7ywWfb7-caXrPbujbTZSb2pmdiWUqIIk9mi/s1600/IMG_0151.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2CxzMdbvy5XCpgIdTpmb9Bga_IGmkNIaG_MUGBVTz9VToB6fJ-CWd4oibd9l2jr8T9j4I-5hyphenhyphenoZWyaCSAdOSMwbqJ8nxLCrpFRycyZ0XEX7ywWfb7-caXrPbujbTZSb2pmdiWUqIIk9mi/s320/IMG_0151.jpg" width="179" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: "times"; mso-fareast-font-family: "Times New Roman";">Exporting a
file using document picker –</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Create the file path
of the document to upload</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSURL</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *filePathToUpload = [</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSURL</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">fileURLWithPath</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:[[</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSBundle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">mainBundle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">] </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">pathForResource</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"testing"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">ofType</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"doc"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">]]<span style="mso-spacerun: yes;"> </span>;</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Create a object of document picker view and set the mode to Export</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
*docPicker = [[</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">alloc</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">] </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">initWithURL</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:filePathToUpload
</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">inMode</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerModeExportToService</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Set the delegate</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>docPicker.</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">delegate</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
= </span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">;</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//present the document picker</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">presentViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:docPicker </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">animated</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">YES</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">completion</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">Create the url with the
document that you want to upload and then initiate the document picker with
that url.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxCredLU4dmLgbj5vrW5BmEc9SAAnvPwYikHMF483SxY0aLLzQwPCt0FOcapPfMT4aJFG4BhGalYwPnaqMS3qxGmwdpouDIACFZzM0nw8rR0tbRPEr87ACeMDnJi5rUI184OA0uTzlnY1J/s1600/IMG_0148.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxCredLU4dmLgbj5vrW5BmEc9SAAnvPwYikHMF483SxY0aLLzQwPCt0FOcapPfMT4aJFG4BhGalYwPnaqMS3qxGmwdpouDIACFZzM0nw8rR0tbRPEr87ACeMDnJi5rUI184OA0uTzlnY1J/s320/IMG_0148.jpg" width="179" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBnuisjRNYJNSNJDbN3V2mfG39UDsHpTrawt26kZwPtA8tfxpSTO7GOq7YdINhBnpI0noWl5YVvZ-CZhRmLvROLlZPSoOI6NVbmX_oXhPphMnzIyy_schHNHKuDr8pZP_UdMeRR9EysCy8/s1600/IMG_0150.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBnuisjRNYJNSNJDbN3V2mfG39UDsHpTrawt26kZwPtA8tfxpSTO7GOq7YdINhBnpI0noWl5YVvZ-CZhRmLvROLlZPSoOI6NVbmX_oXhPphMnzIyy_schHNHKuDr8pZP_UdMeRR9EysCy8/s320/IMG_0150.jpg" width="179" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">When the above import or
export methods are called we will get the status in the delegate methods of </span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerDelegate.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">/**</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*<span style="mso-spacerun: yes;"> </span>This
delegate method is called when user will either upload or download the file.</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*<span style="mso-spacerun: yes;">
</span>@param controller UIDocumentPickerViewController object</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*<span style="mso-spacerun: yes;">
</span>@param url<span style="mso-spacerun: yes;"> </span>url of the file</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*/</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">- (</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">void</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">)documentPicker:(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *)controller didPickDocumentAtURL:(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSURL</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *)url</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">{</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">if</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> (controller.</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">documentPickerMode</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> == </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerModeImport</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">// Condition called when user download the file</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSData</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
*fileData = [</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSData</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">dataWithContentsOfURL</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:url];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">// NSData of the content that was
downloaded - Use this to upload on the server or save locally in directory</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Showing alert for success</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">dispatch_async</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">(</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">dispatch_get_main_queue</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">(), ^{</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
*alertMessage = [</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">stringWithFormat</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"Successfully downloaded file
%@"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">, [url </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">lastPathComponent</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">]];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *alertController = [</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">alertControllerWithTitle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"UIDocumentView"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">message</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:alertMessage</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">preferredStyle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertControllerStyleAlert</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[alertController </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">addAction</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:[</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertAction</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">actionWithTitle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"Ok"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">style</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertActionStyleDefault</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">handler</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">]];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">presentViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:alertController </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">animated</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">YES</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">completion</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>});</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>}</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">else</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">if</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> (controller.</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">documentPickerMode</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> == </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerModeExportToService</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">// Called when user uploaded the file - Display
success alert</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">dispatch_async</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">(</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">dispatch_get_main_queue</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">(), ^{</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
*alertMessage = [</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">stringWithFormat</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"Successfully uploaded file
%@"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">, [url </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">lastPathComponent</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">]];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *alertController = [</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">alertControllerWithTitle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"UIDocumentView"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">message</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:alertMessage</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">preferredStyle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertControllerStyleAlert</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[alertController </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">addAction</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:[</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertAction</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">actionWithTitle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"Ok"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">style</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIAlertActionStyleDefault</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">handler</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">]];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">presentViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:alertController </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">animated</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">YES</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">completion</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>});</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">/**</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*<span style="mso-spacerun: yes;">
</span>Delegate called when user cancel the document picker</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*<span style="mso-spacerun: yes;">
</span>@param controller - document picker object</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*/</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">- (</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">void</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">)documentPickerWasCancelled:(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *)controller {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">}</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: "times";">UIDocumentMenuView </span></b><span style="font-family: "times"; mso-bidi-font-weight: bold;"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "times"; mso-bidi-font-weight: bold;">Instead
of directly presenting the document picker view we can also present menu view
that contains all the document providers. Use can control which extensions they
want to display and which they don’t want. <br />
<br />
We can also add our own option in the list either in top or bottom of the list.
</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">/** Create the array of
UTI Type that you want to support</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>* Pass the array of UTI Type that
application wants to support. Add more UTI </span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">Type if you want to support more
other than listed</span><br />
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span><br />
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>*/</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSArray</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *types = </span><span lang="EN-US" style="color: #1c00cf; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@[</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeImage</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeSpreadsheet</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypePresentation</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeDatabase</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeFolder</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeZipArchive</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">,(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">NSString</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">*)</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">kUTTypeVideo</span><span lang="EN-US" style="color: #1c00cf; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">]</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">;</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Create a object of document menu view and set the mode to Import</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentMenuViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
*objMenuView = [[</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentMenuViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">alloc</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">]</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">initWithDocumentTypes</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:types </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">inMode</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerModeImport</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Create Custom option to display</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[objMenuView </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">addOptionWithTitle</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #c41a16; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">@"My
Custom option"</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">image</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">order</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentMenuOrderFirst</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">handler</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:^{</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Call when user select the option</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>}];</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//Set the delegate</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>objMenuView.</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">delegate</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
= </span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">;</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">//present the document menu view</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">presentViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:objMenuView </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">animated</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">YES</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">completion</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">When user select any
option other than custom we have to display the document view controller to
select the file.To get the notification we have to implement </span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentMenuDelegate.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">- (</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">void</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">)documentMenu:(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentMenuViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *)documentMenu didPickDocumentPicker:(</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">UIDocumentPickerViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> *)documentPicker {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>documentPicker.</span><span lang="EN-US" style="color: #5c2699; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">delegate</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">
= </span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">;</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 33.7pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><span style="mso-spacerun: yes;"> </span>[</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">self</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">presentViewController</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:documentPicker </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">animated</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">YES</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">completion</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">:</span><span lang="EN-US" style="color: #aa0d91; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">nil</span><span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">];</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLiPVBPSO12ZYDgsd01ggIB226zRB2VR0UPNXcUv1r1tLagQWkssm2kpbJ02UXsCBA6fkQWpYJKn_4hAJq8QOY7BR9VLpb9tYCwkgrSIlRkUMQ2UJnJsgxeTtC76t57iIoKaX8T6W1BiB_/s1600/IMG_0152.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLiPVBPSO12ZYDgsd01ggIB226zRB2VR0UPNXcUv1r1tLagQWkssm2kpbJ02UXsCBA6fkQWpYJKn_4hAJq8QOY7BR9VLpb9tYCwkgrSIlRkUMQ2UJnJsgxeTtC76t57iIoKaX8T6W1BiB_/s320/IMG_0152.jpg" width="179" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOTxe2OE1zGaiAcc30YczMX31vWsbB69PYTaBaN3MhBcWU0L7Jg02D_FsDiodDLV5rmHeKOH9EENZtOvAnlBhW6tfOcvpCg2TCauOx4-xApyWmO2MEYb788KduZusCve-5PGIvmvg6dG5Q/s1600/IMG_0153.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOTxe2OE1zGaiAcc30YczMX31vWsbB69PYTaBaN3MhBcWU0L7Jg02D_FsDiodDLV5rmHeKOH9EENZtOvAnlBhW6tfOcvpCg2TCauOx4-xApyWmO2MEYb788KduZusCve-5PGIvmvg6dG5Q/s320/IMG_0153.jpg" width="179" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><b> Note-</b> To use document picker and iCloud you must enable iCloud in project settings and create the entitlement.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsJHjS2CeJEQrfFLVqgokHUH8wxb293QhwHETIJjtyoGNopVc6RVIJRtoLk0SJZIIuVDqbSQN77gB2YG0-vbVAvu2gx0yuOWuYWzd4NK1A1Tn1zFE9NV-siojfwTpqs7PafwlP_aQRExFW/s1600/Screen+Shot+2016-06-19+at+12.47.28+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsJHjS2CeJEQrfFLVqgokHUH8wxb293QhwHETIJjtyoGNopVc6RVIJRtoLk0SJZIIuVDqbSQN77gB2YG0-vbVAvu2gx0yuOWuYWzd4NK1A1Tn1zFE9NV-siojfwTpqs7PafwlP_aQRExFW/s320/Screen+Shot+2016-06-19+at+12.47.28+AM.png" width="320" /></a></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><br /></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";">That’s all we have
successfully integrated the document menu view and document picker view
controller.</span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="color: #222222; font-family: "times";">Here is </span><span style="font-family: "times";"><a href="https://github.com/pradeep7may/DocumentPickerViewController" target="_blank"><span style="color: blue;">sample project</span></a><span style="color: blue;"> </span><span style="color: #222222;">with all the code of the above tutorial.<br />
<br />
If you face any issue or have any suggestions, please leave your comment.</span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: "times"; mso-ansi-language: EN-US; mso-bidi-font-family: "Menlo Regular";"><br />
<br style="mso-special-character: line-break;" />
<br style="mso-special-character: line-break;" />
</span></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com46tag:blogger.com,1999:blog-4470837025519971449.post-37214538961777573732016-04-26T08:08:00.003-07:002016-04-26T10:34:18.239-07:003D touch(Peek and Pop)<div dir="ltr" style="text-align: left;" trbidi="on">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Times;
panose-1:2 0 5 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
@font-face
{font-family:"\0022arial\0022";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-alt:"Times New Roman";
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-format:other;
mso-font-pitch:auto;
mso-font-signature:0 0 0 0 0 0;}
@font-face
{font-family:"Menlo Regular";
panose-1:2 11 6 9 3 8 4 2 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-436198657 -771687941 33554472 0 479 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
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-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:450903018;
mso-list-type:hybrid;
mso-list-template-ids:-1322242266 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l0:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">With
the new latest iOS 9 update now we can use the 3D touch that can provide more
flexibility to a user. One of them is the peek and pop feature to view the
preview of the controller before opening it. Today we will learn how to implement
it in our iOS apps. </span></span><br />
<div class="MsoNormal">
<br />
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Before
beginning let us first understand what is peek and pop.</span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="font-family: "arial" , "helvetica" , sans-serif;"> </span>Peek
– To display the preview is called as peek.<br /><span style="font-family: "arial" , "helvetica" , sans-serif;"> </span>Pop
– Navigation to the view that is currently shown as preview is called as pop.</span></span><br />
<div class="MsoListParagraphCxSpLast" style="text-indent: -18pt;">
<br /></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Let
us first create a simple view controller project with the navigation
controller. Now create a another controller that will show as a preview.</span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbxladHAkNWvrVuxU4g3XWGfH7F25aaAxYLjo2KoFj8xY2F78uoAMaeEnHCs6yuyqxZDTrFKVtATAtR5BZoFSm_2LMzHYi18ENV4myTujSQhhuH1CWgvgQSe2mN9aayxlzHy45NQyYkH4B/s1600/IMG_0014.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbxladHAkNWvrVuxU4g3XWGfH7F25aaAxYLjo2KoFj8xY2F78uoAMaeEnHCs6yuyqxZDTrFKVtATAtR5BZoFSm_2LMzHYi18ENV4myTujSQhhuH1CWgvgQSe2mN9aayxlzHy45NQyYkH4B/s320/IMG_0014.jpg" width="179" /></a></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Now
to implement peek and pop, first step is
to register the view that will be source. In our demo we will use table view as
a source view.</span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: #aa0d91;">if</span><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #5c2699;">traitCollection</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #5c2699;">forceTouchCapability</span><span lang="EN-US" style="color: black;"> == </span><span lang="EN-US" style="color: #5c2699;">UIForceTouchCapability</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #2e0d6e;">Available</span><span lang="EN-US" style="color: black;"> {</span></span></span><br />
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #2e0d6e;">registerForPreviewingWithDelegate</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;">, sourceView: </span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #3f6e74;">tblPeekPop</span><span lang="EN-US" style="color: black;"> </span></span></span></div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">}</span></span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><b>Note – Before registering source
view make sure that device supports the 3D touch.</b></span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"> </span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">Now
the next step is to conforms the <span lang="EN-US" style="color: #5c2699;">UIViewControllerPreviewingDelegate</span><span lang="EN-US">. Let’s implement the delegate that are required for
peek and pop.</span></span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: #aa0d91;">func</span><span lang="EN-US" style="color: black;">
previewingContext(previewingContext: </span><span lang="EN-US" style="color: #5c2699;">UIViewControllerPreviewing</span><span lang="EN-US" style="color: black;">, viewControllerForLocation location: </span><span lang="EN-US" style="color: #5c2699;">CGPoint</span><span lang="EN-US" style="color: black;">) -> </span><span lang="EN-US" style="color: #5c2699;">UIViewController</span><span lang="EN-US" style="color: black;">? {</span></span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">let</span><span lang="EN-US" style="color: black;"> storyboard: </span><span lang="EN-US" style="color: #5c2699;">UIStoryboard</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #5c2699;">UIStoryboard</span><span lang="EN-US" style="color: black;">(name: </span><span lang="EN-US" style="color: #c41a16;">"Main"</span><span lang="EN-US" style="color: black;">, bundle: </span><span lang="EN-US" style="color: #aa0d91;">nil</span><span lang="EN-US" style="color: black;">)</span></span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: #aa0d91;"> </span></span></span><br />
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: #aa0d91;"> let</span><span lang="EN-US" style="color: black;"> objPreviewView = storyboard.</span><span lang="EN-US" style="color: #2e0d6e;">instantiateViewControllerWithIdentifier</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #c41a16;">"PreviewViewController"</span><span lang="EN-US" style="color: black;">) </span><span lang="EN-US" style="color: #aa0d91;">as</span><span lang="EN-US" style="color: black;">? </span><span lang="EN-US" style="color: #3f6e74;">PreviewViewControll<span style="font-family: "arial" , "helvetica" , sans-serif;">er </span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: #3f6e74;"><span style="font-family: "arial" , "helvetica" , sans-serif;"> </span></span></span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">/*objPreviewView!.</span><span lang="EN-US" style="color: #5c2699;">preferredContentSize</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #5c2699;">CGSize</span><span lang="EN-US" style="color: black;">(width: </span><span lang="EN-US" style="color: #1c00cf;">0.0</span><span lang="EN-US" style="color: black;">, height:</span><span lang="EN-US" style="color: #1c00cf;">180.0</span><span lang="EN-US" style="color: #aa0d91;">) */</span></span></span><br />
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: #aa0d91;"> return</span><span lang="EN-US" style="color: black;"> objPreviewView</span></span></span><br />
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">}</span></span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;"> </span></span></span></div>
<div class="MsoNormal">
</div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">In
the above delegate method create a view controller that will show as a peek view.
Here we can set the content size of the preview controller that will display
the preview view of that height.</span></span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDhlpics0h0y9DFnBLIP_0t0LgdDTpSC_M5eGxD0OY-GNs-G7PVYW32Vyy0DkkuXgRPnblIUW8BcKNfwoDFEgd53l2N78oD6lv6avxke-jiBtsSBdjNyJ6pywrjA6dwjhVXdYDlBMlEsw/s1600/IMG_0015.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDhlpics0h0y9DFnBLIP_0t0LgdDTpSC_M5eGxD0OY-GNs-G7PVYW32Vyy0DkkuXgRPnblIUW8BcKNfwoDFEgd53l2N78oD6lv6avxke-jiBtsSBdjNyJ6pywrjA6dwjhVXdYDlBMlEsw/s320/IMG_0015.jpg" width="179" /></a></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">After
preview when use force touch on the preview view then we have to navigate it to
the view controller to display it in full screen.(Pop)</span></span></span></div>
<div class="MsoNormal">
</div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">func</span><span lang="EN-US" style="color: black;"> previewingContext(previewingContext: </span><span lang="EN-US" style="color: #5c2699;">UIViewControllerPreviewing</span><span lang="EN-US" style="color: black;">, commitViewController
viewControllerToCommit :</span><span lang="EN-US" style="color: #5c2699;">UIViewController</span><span lang="EN-US" style="color: black;">) {</span></span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;"> </span></span></span><span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"></span></span>
</div>
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #2e0d6e;">showViewController</span><span lang="EN-US" style="color: black;">(viewControllerToCommit, sender: </span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;">)</span></span></span><br />
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">}</span></span></span></div>
<div class="MsoNormal">
</div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizag4q4VuAuD75SMn-kV3Y0LVClY8T5o0y0lA9dHbG7MS8ZzkH0HCQi_Y41dDzHKx1hCDzUja1uWyFC0_hhK6FScHYwdpujOo6u_FtBtxbwXY9WW42nYqstnO3I-8EysfOwm0_W9cLm-y2/s1600/IMG_0016.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizag4q4VuAuD75SMn-kV3Y0LVClY8T5o0y0lA9dHbG7MS8ZzkH0HCQi_Y41dDzHKx1hCDzUja1uWyFC0_hhK6FScHYwdpujOo6u_FtBtxbwXY9WW42nYqstnO3I-8EysfOwm0_W9cLm-y2/s320/IMG_0016.jpg" width="179" /></a></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">Here we will show the view controller that
we have created to push in the navigation. Now user will move to the next view
controller.</span></span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span lang="EN-US" style="color: black;">That’s all we have successfully integrated
it.</span></span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;"><span style="color: #222222;">Here is </span><span style="color: blue;"><a href="https://github.com/pradeep7may/PeekPop" target="_blank"><span style="color: blue;">sample project</span></a> </span><span style="color: #222222;">with all the code of the
above tutorial.<br />
<br />
If you face any issue or have any suggestions, please leave your comment.</span></span></span></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<br /></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<br /></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span><br />
<div class="MsoNormal">
<br />
<br />
<br /></div>
<span style="font-size: small;"><span style="font-family: "arial" , "helvetica" , sans-serif;">
</span></span></div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com0tag:blogger.com,1999:blog-4470837025519971449.post-30142685289110396672016-04-23T10:17:00.002-07:002016-04-23T10:17:47.306-07:00Singleton in swift (Best way to create)<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;">There are many approaches to create a
singleton object. In Objective C we create a singleton object by using
dispatch_once. <br /><br /><o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;">+(id)sharedInstance
{<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span lang="EN-US" style="color: black;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91;">static</span><span lang="EN-US" style="color: black;"> Shared *shared = </span><span lang="EN-US" style="color: #aa0d91;">nil</span><span lang="EN-US" style="color: black;">;<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span lang="EN-US" style="color: black;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91;">static</span><span lang="EN-US" style="color: black;"> dispatch_once_t onceToken;<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;"><span style="mso-spacerun: yes;"> </span>dispatch_once(&onceToken, ^{<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span lang="EN-US" style="color: black;"><span style="mso-spacerun: yes;"> </span>shared = [[</span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;"> alloc] </span><span lang="EN-US" style="color: #aa0d91;">init</span><span lang="EN-US" style="color: black;">];<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;"><span style="mso-spacerun: yes;"> </span>});<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span lang="EN-US" style="color: black;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91;">return</span><span lang="EN-US" style="color: black;"> shared;<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;">}<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;">Here
dispatch_once method of GCD ensures that object is created only one time and
also it is thread safe. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;">In
swift<span style="mso-spacerun: yes;"> </span>we can also use the same approach
to create a singleton object but today we will learn the best approach to
create it. The best approach is Swift is <b style="mso-bidi-font-weight: normal;">one
line singleton</b>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span lang="EN-US" style="color: #aa0d91;">class</span><span lang="EN-US" style="color: black;">
Shared: </span><span lang="EN-US" style="color: #5c2699;">NSObject</span><span lang="EN-US" style="color: black;"> {<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span lang="EN-US" style="color: black;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91;">static</span><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">let</span><span lang="EN-US" style="color: black;"> sharedInstance = </span><span lang="EN-US" style="color: #3f6e74;">Shared</span><span lang="EN-US" style="color: black;">()<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span lang="EN-US" style="color: black;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91;">private</span><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">override</span><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">init</span><span lang="EN-US" style="color: black;">() { }<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;">}<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;">You
were thinking how only writing one line solves our problem. So the answer is
when the lazy initialization of the static variable is created then it is
initiated inside the dispatch_once block and that is thread safe and ensures
that only one instance is created.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhia_joWRQZsxITOZvlioFFR5mOe-FlKJATsu_bN_X2N9andIaSVARoMVU7WpjEn7l3qJXIDdwcSiEoG0zuGJcJHBBOBDs9KQjBiaD3-0WgefprkmXGa_hs4A6HEeeto57HbE2GxrCiVWH/s1600/Screen+Shot+2016-04-23+at+10.19.10+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Times, Times New Roman, serif;"><img border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhia_joWRQZsxITOZvlioFFR5mOe-FlKJATsu_bN_X2N9andIaSVARoMVU7WpjEn7l3qJXIDdwcSiEoG0zuGJcJHBBOBDs9KQjBiaD3-0WgefprkmXGa_hs4A6HEeeto57HbE2GxrCiVWH/s320/Screen+Shot+2016-04-23+at+10.19.10+PM.png" width="320" /></span></a></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;">You
can easily check that by applying the breakpoint and checking the queue. Here
you can easily see that internally it is calling dispatch_once.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: black;">Note</span></b><span lang="EN-US" style="color: black;"> – Don’t forget to make the init as
private as it will ensure that no object can be created outside. If anyone try
to create the object of your shared class then it will gives you error.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz1tsgJYdwt-oyIw6PkaDG6kKyRsiGfes6PjG1aLTZJlrg_QMnHPw7k3KwcH-6BDq2CZuEXcr1DNZn37Gw4GK5Im6-6BfVJCmVpVvk5Sn5xsQ4GP-qk3mi8-Pxs4z2Z5NVcponqNY7kWfU/s1600/Screen+Shot+2016-04-23+at+10.30.21+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Times, Times New Roman, serif;"><img border="0" height="14" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz1tsgJYdwt-oyIw6PkaDG6kKyRsiGfes6PjG1aLTZJlrg_QMnHPw7k3KwcH-6BDq2CZuEXcr1DNZn37Gw4GK5Im6-6BfVJCmVpVvk5Sn5xsQ4GP-qk3mi8-Pxs4z2Z5NVcponqNY7kWfU/s320/Screen+Shot+2016-04-23+at+10.30.21+PM.png" width="320" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: left;">
<!--[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>204</o:Words>
<o:Characters>1168</o:Characters>
<o:Company>IBM</o:Company>
<o:Lines>9</o:Lines>
<o:Paragraphs>2</o:Paragraphs>
<o:CharactersWithSpaces>1370</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-IN</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:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
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--></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="color: black;"><span style="font-family: Times, Times New Roman, serif;">That’s
all, enjoy creating you singleton object.<br /><br /></span>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>11</o:Words>
<o:Characters>63</o:Characters>
<o:Company>IBM</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>73</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-IN</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:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
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--><span style="font-family: Times; font-size: 10pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: #222222; font-family: Times;">If you
face any issue or have any suggestions, please leave your comment.</span><span style="font-family: Times; font-size: 10.0pt; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";"><o:p></o:p></span></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com0tag:blogger.com,1999:blog-4470837025519971449.post-34421249579166562342016-04-19T12:54:00.001-07:002016-04-20T10:33:40.021-07:00What’s new in Swift 2.2<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: left;">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Times;
panose-1:2 0 5 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
@font-face
{font-family:"Menlo Regular";
panose-1:2 11 6 9 3 8 4 2 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-436198657 -771687941 33554472 0 479 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
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-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
h2
{mso-style-priority:9;
mso-style-qformat:yes;
mso-style-link:"Heading 2 Char";
mso-style-next:Normal;
margin-top:10.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
mso-outline-level:2;
font-size:13.0pt;
font-family:Calibri;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"MS ゴシック";
mso-fareast-theme-font:major-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:major-bidi;
color:#4F81BD;
mso-themecolor:accent1;}
h3
{mso-style-priority:9;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-link:"Heading 3 Char";
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
mso-pagination:widow-orphan;
mso-outline-level:3;
font-size:13.5pt;
font-family:Times;}
code
{mso-style-noshow:yes;
mso-style-priority:99;
font-family:Courier;
mso-ascii-font-family:Courier;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Courier;
mso-bidi-font-family:Courier;}
span.Heading2Char
{mso-style-name:"Heading 2 Char";
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"Heading 2";
mso-ansi-font-size:13.0pt;
mso-bidi-font-size:13.0pt;
font-family:Calibri;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"MS ゴシック";
mso-fareast-theme-font:major-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:major-bidi;
color:#4F81BD;
mso-themecolor:accent1;
font-weight:bold;}
span.Heading3Char
{mso-style-name:"Heading 3 Char";
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"Heading 3";
mso-ansi-font-size:13.5pt;
mso-bidi-font-size:13.5pt;
font-family:Times;
mso-ascii-font-family:Times;
mso-hansi-font-family:Times;
font-weight:bold;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:72.0pt 90.0pt 28.4pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}</style><span style="font-size: small;"><b><span style="font-family: "times";"></span></b><span style="font-family: "times";">Swift 2.2 brings new syntax, new
features, and some deprecations too. </span><span style="font-family: "times";">Today we will learn
all the new changes that are made in swift 2.2.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">As a reminder, “deprecation” means that
a function or language feature is no longer recommended for use and will be
removed entirely at a later date. In practice that means Swift will issue a
compiler warning today, and a compiler error in the future — likely Swift
3.</span></span></div>
<h3 class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";"> </span></span></h3>
<h3 style="text-align: left;">
</h3>
<h3 class="MsoNormal" style="text-align: left;">
<u><span style="font-size: small;"><b><span style="font-family: "times";">Compile-time Swift
version checks</span></b></span></u></h3>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">Swift
2.2 introduces a new compiler directive that makes cross-version compatibility
check. Now you can specify blocks of code that should be read only if the
compiler supports a specific Swift language version.</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #643820; font-family: "times";">#if</span><span lang="EN-US" style="color: black; font-family: "times";"> </span><span lang="EN-US" style="color: #643820; font-family: "times";">swift</span><span lang="EN-US" style="color: black; font-family: "times";">(>=</span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">2.2</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"Swift with higher version"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #643820; font-family: "times";">#else</span><span lang="EN-US" style="color: black; font-family: "times";"></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"> print(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"Swift will less version"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #643820; font-family: "times";">#endif</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<u><span style="font-size: small;"><b><span style="font-family: "times";">Compile-time Selector
checks</span></b></span></u></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">Right now if we are using the selectors and call the
method that does not exsits the at compile time we will not get any error but
at runtime we will face the crash</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";"></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">let</span><span lang="EN-US" style="color: black; font-family: "times";">
button = </span><span lang="EN-US" style="color: #5c2699; font-family: "times";">UIButton</span><span lang="EN-US" style="color: black; font-family: "times";">()</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">button.</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times";">addTarget</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">self</span><span lang="EN-US" style="color: black; font-family: "times";">, action: </span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"buttonClicked"</span><span lang="EN-US" style="color: black; font-family: "times";">, forControlEvents: </span><span lang="EN-US" style="color: #5c2699; font-family: "times";">UIControlEvents</span><span lang="EN-US" style="color: black; font-family: "times";">.TouchUpInside)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">If we write the method name<b> </b></span><span lang="EN-US" style="color: #c41a16; font-family: "times";">buttonClick </span><span lang="EN-US" style="font-family: "times";">by mistake, then Xcode will not notify us and will
crash when button is clicked.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">Using
</span><code><span style="font-family: "times";">#selector</span></code><span style="font-family: "times";"> will check your code at compile time
to make sure the method you want to call actually exists. If the method <em><span style="font-family: "times"; font-style: normal;">doesn’t</span></em>
exist, you’ll get a compile error.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">button.addTarget(</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">self</span><span lang="EN-US" style="color: black; font-family: "times";">, action: </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">#selector</span><span lang="EN-US" style="color: black; font-family: "times";">(buttonClick) , forControlEvents: </span><span lang="EN-US" style="color: #5c2699; font-family: "times";">UIControlEvents</span><span lang="EN-US" style="color: black; font-family: "times";">.TouchUpInside)</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">It
will give you error “Use of unresolved identifier ‘buttonClick’”.</span></span><br />
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"><br /></span></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUeTau7xIt998iAPZdZR6tvCKlt13e6X47um3UKjCbBtElZxkYLrvDMaAnvOqfqjDGqBW3GfmLo8NvtH3of7dOtqvWjUaEkILafG7Y5VcLSRFtuKm6vbO3dSvj_D_R78DzvpmxSHXwv4n-/s1600/Screen+Shot+2016-04-19+at+11.59.41+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUeTau7xIt998iAPZdZR6tvCKlt13e6X47um3UKjCbBtElZxkYLrvDMaAnvOqfqjDGqBW3GfmLo8NvtH3of7dOtqvWjUaEkILafG7Y5VcLSRFtuKm6vbO3dSvj_D_R78DzvpmxSHXwv4n-/s320/Screen+Shot+2016-04-19+at+11.59.41+PM.png" width="320" /></a></div>
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"><br /></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<u><span style="font-size: small;"><b><span style="font-family: "times";">Built-in Tuple
comparison</span></b></span></u></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">Swift
2.2 introduces the ability to compare two tuples for equality, which means it
will check each element in one tuple against the matching element in another,
and report true if all elements match.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">let</span><span lang="EN-US" style="color: black; font-family: "times";">
oldSwift = (</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"Swift"</span><span lang="EN-US" style="color: black; font-family: "times";">, </span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"2.2"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">let</span><span lang="EN-US" style="color: black; font-family: "times";">
newSwift = (</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"Swift"</span><span lang="EN-US" style="color: black; font-family: "times";">, </span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"2.2"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">if</span><span lang="EN-US" style="color: black; font-family: "times";">
oldSwift == newSwift {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"Tuple matched"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">}
</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">else</span><span lang="EN-US" style="color: black; font-family: "times";"> {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left; text-indent: 33.7pt;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";">print</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"Tuple not matched"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">}</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">It
will give the output as “Tuple matched”.</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<u><span style="font-size: small;"><b><span style="font-family: "times";">C- Style Loops are
Deprecated</span></b></span></u></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">With Swift 2.2 now you can not use C style loop.</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">for</span><span lang="EN-US" style="color: black; font-family: "times";"> </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">var</span><span lang="EN-US" style="color: black; font-family: "times";"> i = </span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">0</span><span lang="EN-US" style="color: black; font-family: "times";">; i < </span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">5</span><span lang="EN-US" style="color: black; font-family: "times";">; i++ {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(i)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">}</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">Now
with the new swift 2.2 you can use the loop like.</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">for</span><span lang="EN-US" style="color: black; font-family: "times";"> i </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">in</span><span lang="EN-US" style="color: black; font-family: "times";"> </span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">0</span><span lang="EN-US" style="color: black; font-family: "times";"> ..< </span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">5</span><span lang="EN-US" style="color: black; font-family: "times";"> {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(i)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">}</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">If
you want to use a reverse range then you can not directly reverse the range
like below code.</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">for</span><span lang="EN-US" style="color: black; font-family: "times";"> i </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">in</span><span lang="EN-US" style="color: black; font-family: "times";"> </span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">5</span><span lang="EN-US" style="color: black; font-family: "times";">...</span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">0</span><span lang="EN-US" style="color: black; font-family: "times";"> {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(i)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">}</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">It
will give you crash at runtime. You have to use the reverse function to make
the range in reverse order.</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">for</span><span lang="EN-US" style="color: black; font-family: "times";"> i </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">in</span><span lang="EN-US" style="color: black; font-family: "times";"> (</span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">0</span><span lang="EN-US" style="color: black; font-family: "times";">...</span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">5</span><span lang="EN-US" style="color: black; font-family: "times";">).</span><span lang="EN-US" style="color: #2e0d6e; font-family: "times";">reverse</span><span lang="EN-US" style="color: black; font-family: "times";">() {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(i)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">}</span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<u><b><span style="font-size: small;"><code>++</code> and <code>--</code> are deprecated</span></b></u></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-family: "times" , "times new roman" , serif;"><span style="font-size: small;"><span style="font-weight: normal;">Both prefix and post fix operators are now disabled. Now you can not use
++ and --.</span></span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-family: "times" , "times new roman" , serif;"><span style="font-size: small;"><span style="font-weight: normal;">You will instead need to use </span><code><span style="font-weight: normal;">i += 1</span></code><span style="font-weight: normal;"> or </span><code><span style="font-weight: normal;">i -= 1.</span></code></span></span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<u><b><span style="font-family: "times" , "times new roman" , serif;"><span style="font-size: small;"><code>var</code> parameters are deprecated</span></span></b></u></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-family: "times" , "times new roman" , serif;"><span style="font-size: small;"><span style="font-weight: normal;">Prior to Swift 2.2 we can declare function parameter as var if we want to
modify it inside the function. With new var parameter depreciation we will not
be confused between inout and var parameter as both can be modified inside
function and that can create confusion.</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">func</span><span lang="EN-US" style="color: black; font-family: "times";">
checkVarChanges(</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">var</span><span lang="EN-US" style="color: black; font-family: "times";"> str:
</span><span lang="EN-US" style="color: #5c2699; font-family: "times";">String</span><span lang="EN-US" style="color: black; font-family: "times";">) {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"> str = str.</span><span lang="EN-US" style="color: #5c2699; font-family: "times";">lowercaseString</span><span lang="EN-US" style="color: black; font-family: "times";"></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"</span><span lang="EN-US" style="color: black; font-family: "times";">\</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">(</span><span lang="EN-US" style="color: black; font-family: "times";">str</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">)"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black;">}</span><span lang="EN-US" style="color: black; font-family: "times";"></span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-weight: normal;">Now with Swift 2.2.</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">func</span><span lang="EN-US" style="color: black; font-family: "times";">
checkVarChanges(str: </span><span lang="EN-US" style="color: #5c2699; font-family: "times";">String</span><span lang="EN-US" style="color: black; font-family: "times";">) {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";"> let</span><span lang="EN-US" style="color: black; font-family: "times";"> lowerCase = str.</span><span lang="EN-US" style="color: #5c2699; font-family: "times";">lowercaseString</span><span lang="EN-US" style="color: black; font-family: "times";"></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"</span><span lang="EN-US" style="color: black; font-family: "times";">\</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">(</span><span lang="EN-US" style="color: black; font-family: "times";">lowerCase</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">)"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black;">}</span><span lang="EN-US" style="color: black; font-family: "times";"></span></span></div>
<div style="text-align: left;">
</div>
<div style="margin-top: 22.5pt; text-align: left;">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Times;
panose-1:2 0 5 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
@font-face
{font-family:"Menlo Regular";
panose-1:2 11 6 9 3 8 4 2 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-436198657 -771687941 33554472 0 479 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
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-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
h2
{mso-style-priority:9;
mso-style-qformat:yes;
mso-style-link:"Heading 2 Char";
mso-style-next:Normal;
margin-top:10.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan lines-together;
page-break-after:avoid;
mso-outline-level:2;
font-size:13.0pt;
font-family:Calibri;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"MS ゴシック";
mso-fareast-theme-font:major-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:major-bidi;
color:#4F81BD;
mso-themecolor:accent1;}
span.Heading2Char
{mso-style-name:"Heading 2 Char";
mso-style-priority:9;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"Heading 2";
mso-ansi-font-size:13.0pt;
mso-bidi-font-size:13.0pt;
font-family:Calibri;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:major-latin;
mso-fareast-font-family:"MS ゴシック";
mso-fareast-theme-font:major-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:major-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:major-bidi;
color:#4F81BD;
mso-themecolor:accent1;
font-weight:bold;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:72.0pt 90.0pt 28.4pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
-->
</style>
</div>
<div style="margin-top: 22.5pt; text-align: left;">
<u><b><span style="font-size: small;"><span style="color: windowtext; font-family: "times";">More keywords can be used as argument labels</span></span></b></u></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">Swift has
lots of keywords that you can use as a arguments but right now you have to
place it in backticks like this.</span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">func</span><span lang="EN-US" style="color: black; font-family: "times";">
executeFunction(str: </span><span lang="EN-US" style="color: #5c2699; font-family: "times";">String</span><span lang="EN-US" style="color: black; font-family: "times";">, `repeat` count: </span><span lang="EN-US" style="color: #5c2699; font-family: "times";">Int</span><span lang="EN-US" style="color: black; font-family: "times";">) {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times";">print</span><span lang="EN-US" style="color: black; font-family: "times";">(str)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"> }</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"> </span><span lang="EN-US" style="color: #26474b; font-family: "times";">executeFunction</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"name"</span><span lang="EN-US" style="color: black; font-family: "times";">, `repeat`: </span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">4</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">But now in
swift 2.2 we can use any keyword except </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">inout</span><span lang="EN-US" style="color: black; font-family: "times";">, </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">var</span><span lang="EN-US" style="color: black; font-family: "times";">, </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">let. </span><span lang="EN-US" style="font-family: "times";">Now with swift 2.2 code will be written as.</span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">func</span><span lang="EN-US" style="color: black; font-family: "times";">
executeFunction(str: </span><span lang="EN-US" style="color: #5c2699; font-family: "times";">String</span><span lang="EN-US" style="color: black; font-family: "times";">, </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">repeat</span><span lang="EN-US" style="color: black; font-family: "times";"> count: </span><span lang="EN-US" style="color: #5c2699; font-family: "times";">Int</span><span lang="EN-US" style="color: black; font-family: "times";">) {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"> </span><span lang="EN-US" style="color: #2e0d6e; font-family: "times";">print</span><span lang="EN-US" style="color: black; font-family: "times";">(str)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";"> }</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #26474b; font-family: "times";">executeFunction</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"name"</span><span lang="EN-US" style="color: black; font-family: "times";">, </span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">repeat</span><span lang="EN-US" style="color: black; font-family: "times";">: </span><span lang="EN-US" style="color: #1c00cf; font-family: "times";">4</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div style="margin-top: 22.5pt; text-align: left;">
<u><b><span style="font-size: small;"><span style="color: windowtext; font-family: "times";">Renamed debug identifiers: #line, #function, #file</span></span></b></u></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";">Currently
we are using </span><code><span style="font-family: "times";">__FILE__</span></code><span style="font-family: "times";">, </span><code><span style="font-family: "times";">__LINE__</span></code><span style="font-family: "times";">, </span><code><span style="font-family: "times";">__COLUMN__</span></code><span style="font-family: "times";">,
and </span><code><span style="font-family: "times";">__FUNCTION__
for debugging like printing line number,function and so on. Now in Swift 2.2
they are replaced by #file</span></code><span style="font-family: "times";">, </span><code><span style="font-family: "times";">#line</span></code><span style="font-family: "times";">,
</span><code><span style="font-family: "times";">#column</span></code><span style="font-family: "times";"> and </span><code><span style="font-family: "times";">#function.</span></code></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #aa0d91; font-family: "times";">func</span><span lang="EN-US" style="color: black; font-family: "times";">
checkMyFunctionNameAtLine() {</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #007400; font-family: "times";">//old - deprecated statement</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"This is on line </span><span lang="EN-US" style="color: black; font-family: "times";">\</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">(</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">__LINE__</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">) of </span><span lang="EN-US" style="color: black; font-family: "times";">\</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">(</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">__FUNCTION__</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">)"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #007400; font-family: "times";">//new - change in swift 2.2</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: #2e0d6e; font-family: "times";"> print</span><span lang="EN-US" style="color: black; font-family: "times";">(</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">"This is on line </span><span lang="EN-US" style="color: black; font-family: "times";">\</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">(</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">#line</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">) of </span><span lang="EN-US" style="color: black; font-family: "times";">\</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">(</span><span lang="EN-US" style="color: #aa0d91; font-family: "times";">#function</span><span lang="EN-US" style="color: #c41a16; font-family: "times";">)"</span><span lang="EN-US" style="color: black; font-family: "times";">)</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span lang="EN-US" style="color: black; font-family: "times";">}</span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: "times";"> </span></span></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com0tag:blogger.com,1999:blog-4470837025519971449.post-88889843813185626682016-04-16T10:32:00.000-07:002016-04-16T10:32:22.696-07:00Custom Swipe Table View Cell<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Times;
panose-1:2 0 5 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
@font-face
{font-family:"\0022arial\0022";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-alt:"Times New Roman";
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-format:other;
mso-font-pitch:auto;
mso-font-signature:0 0 0 0 0 0;}
@font-face
{font-family:"Menlo Regular";
panose-1:2 11 6 9 3 8 4 2 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-436198657 -771687941 33554472 0 479 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
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-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
-->
</style>
</div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;">In
our most of the apps we generally see that we have some options that we can
perform while swiping the cell. Default
swipe actions provided by iOS can only show the text and don’t have
customization options. Today you will lean how we can add our custom swipe
actions in a UITableview cell.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;">But
before moving that we need PKSwipeTableViewCell file that I have created to
provide custom swipe action. You can download the file from the below github sample
project.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;">Now
create a single view application and add a UITableView in view controller. Create
a custom class for the cell and inherit
it from the PKSwipeTableViewCell. </span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;">In
our demo we will add a call button while swiping the cell, so create a function
and add the code to display the call option.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: #aa0d91;">func</span><span lang="EN-US" style="color: black;">
addRightViewInCell() {</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #007400;">//Create a view that will display when
user swipe the cell in right</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">let</span><span lang="EN-US" style="color: black;"> viewCall = </span><span lang="EN-US" style="color: #5c2699;">UIView</span><span lang="EN-US" style="color: black;">()</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> viewCall.</span><span lang="EN-US" style="color: #5c2699;">backgroundColor</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #5c2699;">UIColor</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #2e0d6e;">lightGrayColor</span><span lang="EN-US" style="color: black;">()</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> viewCall.</span><span lang="EN-US" style="color: #5c2699;">frame</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #2e0d6e;">CGRectMake</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #1c00cf;">0</span><span lang="EN-US" style="color: black;">, </span><span lang="EN-US" style="color: #1c00cf;">0</span><span lang="EN-US" style="color: black;">,</span><span lang="EN-US" style="color: #2e0d6e;">CGRectGetHeight</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #5c2699;">frame</span><span lang="EN-US" style="color: black;">)+</span><span lang="EN-US" style="color: #1c00cf;">20</span><span lang="EN-US" style="color: black;">,</span><span lang="EN-US" style="color: #2e0d6e;">CGRectGetHeight</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #5c2699;">frame</span><span lang="EN-US" style="color: black;">))</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #007400;">//Add a label to display the call text</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">let</span><span lang="EN-US" style="color: black;"> lblCall = </span><span lang="EN-US" style="color: #5c2699;">UILabel</span><span lang="EN-US" style="color: black;">()</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> lblCall.</span><span lang="EN-US" style="color: #5c2699;">text</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #c41a16;">"Call"</span><span lang="EN-US" style="color: black;"></span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> lblCall.</span><span lang="EN-US" style="color: #5c2699;">font</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #5c2699;">UIFont</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #2e0d6e;">systemFontOfSize</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #1c00cf;">15.0</span><span lang="EN-US" style="color: black;">)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> lblCall.</span><span lang="EN-US" style="color: #5c2699;">textColor</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #5c2699;">UIColor</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #2e0d6e;">yellowColor</span><span lang="EN-US" style="color: black;">()</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> lblCall.</span><span lang="EN-US" style="color: #5c2699;">textAlignment</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #5c2699;">NSTextAlignment</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #2e0d6e;">Center</span><span lang="EN-US" style="color: black;"></span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> lblCall.</span><span lang="EN-US" style="color: #5c2699;">frame</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #2e0d6e;">CGRectMake</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #1c00cf;">0</span><span lang="EN-US" style="color: black;">,</span><span lang="EN-US" style="color: #2e0d6e;">CGRectGetHeight</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #5c2699;">frame</span><span lang="EN-US" style="color: black;">) - </span><span lang="EN-US" style="color: #1c00cf;">20</span><span lang="EN-US" style="color: black;">,viewCall.</span><span lang="EN-US" style="color: #5c2699;">frame</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #5c2699;">size</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #5c2699;">width</span><span lang="EN-US" style="color: black;">,</span><span lang="EN-US" style="color: #1c00cf;">20</span><span lang="EN-US" style="color: black;">)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #007400;">//Add a button to perform the action
when user will tap on call and add a image to display</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">let</span><span lang="EN-US" style="color: black;"> btnCall = </span><span lang="EN-US" style="color: #5c2699;">UIButton</span><span lang="EN-US" style="color: black;">(type: </span><span lang="EN-US" style="color: #5c2699;">UIButtonType</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #2e0d6e;">Custom</span><span lang="EN-US" style="color: black;">)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> btnCall.</span><span lang="EN-US" style="color: #5c2699;">frame</span><span lang="EN-US" style="color: black;"> = </span><span lang="EN-US" style="color: #2e0d6e;">CGRectMake</span><span lang="EN-US" style="color: black;">((viewCall.</span><span lang="EN-US" style="color: #5c2699;">frame</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #5c2699;">size</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #5c2699;">width</span><span lang="EN-US" style="color: black;"> - </span><span lang="EN-US" style="color: #1c00cf;">40</span><span lang="EN-US" style="color: black;">)/</span><span lang="EN-US" style="color: #1c00cf;">2</span><span lang="EN-US" style="color: black;">,</span><span lang="EN-US" style="color: #1c00cf;">5</span><span lang="EN-US" style="color: black;">,</span><span lang="EN-US" style="color: #1c00cf;">40</span><span lang="EN-US" style="color: black;">,</span><span lang="EN-US" style="color: #1c00cf;">40</span><span lang="EN-US" style="color: black;">)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> btnCall.</span><span lang="EN-US" style="color: #2e0d6e;">setImage</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #5c2699;">UIImage</span><span lang="EN-US" style="color: black;">(named: </span><span lang="EN-US" style="color: #c41a16;">"call"</span><span lang="EN-US" style="color: black;">), forState: </span><span lang="EN-US" style="color: #5c2699;">UIControlState</span><span lang="EN-US" style="color: black;">.Normal)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> btnCall.</span><span lang="EN-US" style="color: #2e0d6e;">addTarget</span><span lang="EN-US" style="color: black;">(</span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;">, action: </span><span lang="EN-US" style="color: #c41a16;">"callButtonClicked"</span><span lang="EN-US" style="color: black;">, forControlEvents: </span><span lang="EN-US" style="color: #5c2699;">UIControlEvents</span><span lang="EN-US" style="color: black;">.TouchUpInside)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> viewCall.</span><span lang="EN-US" style="color: #2e0d6e;">addSubview</span><span lang="EN-US" style="color: black;">(btnCall)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> viewCall.</span><span lang="EN-US" style="color: #2e0d6e;">addSubview</span><span lang="EN-US" style="color: black;">(lblCall)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #007400;">//Call the super addRightOptions to set
the view that will display while swiping</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">super</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #26474b;">addRightOptionsView</span><span lang="EN-US" style="color: black;">(viewCall)</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;">
}</span></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;">Here
you can see that we are calling super class function addRightOptions, this
gives you the flexibility to show any view that you want to create. You can
create multiple views(like call,message) and display them here.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;">When
the user will swipe the cell and tap on any option then we have to again bring
the cell in normal state. For that we have to call reset function.</span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: #aa0d91;">func</span><span lang="EN-US" style="color: black;">
callButtonClicked(){</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: #007400;"> //Reset the cell state and
close the swipe action</span><span lang="EN-US" style="color: black;"></span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">self</span><span lang="EN-US" style="color: black;">.</span><span lang="EN-US" style="color: #26474b;">resetCellState</span><span lang="EN-US" style="color: black;">()</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;">}</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWrHtfmZxRv_43BgGvoYLfZRu_XYxC9-RsIkR0vs0WdHnfLxgQdcW9KxUlo41chtvc3YEt_gbG71hLN5Wc93cLP2ZWqkm9WraKCbUlG-uXP9pZothOsNopmdYQM-cWq_TY9sdm39KApuRQ/s1600/ezgif.com-video-to-gif.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWrHtfmZxRv_43BgGvoYLfZRu_XYxC9-RsIkR0vs0WdHnfLxgQdcW9KxUlo41chtvc3YEt_gbG71hLN5Wc93cLP2ZWqkm9WraKCbUlG-uXP9pZothOsNopmdYQM-cWq_TY9sdm39KApuRQ/s320/ezgif.com-video-to-gif.gif" width="192" /></a></div>
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;">It’s
depends on the requirement that we have to make the cell again in normal state
or not. If you want to remain open then there is no need to call the reset
function.</span></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;">Swipe
cell class also provide the delegate methods when the swipe action begins on
the cell. We may require in some case to reset the swipe cell when user tries
to perform the swipe action on other cell. To achieve this you have to store
the old cell on which swipe was performed and return that cell in the swipe
delegate. </span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: #007400;">// PKSwipeTableViewCell Delegate</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">func</span><span lang="EN-US" style="color: black;"> swipeBeginInCell(cell: </span><span lang="EN-US" style="color: #3f6e74;">PKSwipeTableViewCell</span><span lang="EN-US" style="color: black;">) {</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #3f6e74;">oldStoredCell</span><span lang="EN-US" style="color: black;"> = cell</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> }</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">func</span><span lang="EN-US" style="color: black;"> swipeDoneOnPreviousCell() -> </span><span lang="EN-US" style="color: #3f6e74;">PKSwipeTableViewCell</span><span lang="EN-US" style="color: black;">? {</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">guard</span><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">let</span><span lang="EN-US" style="color: black;"> cell = </span><span lang="EN-US" style="color: #3f6e74;">oldStoredCell</span><span lang="EN-US" style="color: black;">
</span><span lang="EN-US" style="color: #aa0d91;">else</span><span lang="EN-US" style="color: black;"> {</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">return</span><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">nil</span><span lang="EN-US" style="color: black;"></span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> }</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> </span><span lang="EN-US" style="color: #aa0d91;">return</span><span lang="EN-US" style="color: black;"> cell</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;"> }</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;">Note:
- Don’t forgot to set the cell delegate to point your view controller otherwise
methods will not get called.</span></span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span lang="EN-US" style="color: black;">That’s all we have successfully integrated
it.</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-size: small;"><span style="font-family: inherit;"><span style="color: #222222;">Here is </span><a href="https://github.com/pradeep7may/PKSwipeTableViewCell" target="_blank"><span style="color: blue;">sampleproject</span></a><span style="color: blue;"> </span><span style="color: #222222;">with all the code
of the above tutorial.<br />
<br />
If you face any issue or have any suggestions,please leave your comment.</span></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<span style="font-family: inherit;"><span style="font-size: small;">
</span></span></div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com25tag:blogger.com,1999:blog-4470837025519971449.post-35621415353032668102016-01-05T11:28:00.000-08:002016-04-16T10:58:35.566-07:00Annotating UIImage (Drawing and writing Text on Image)<div dir="ltr" style="text-align: left;" trbidi="on">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Arial;
panose-1:2 11 6 4 2 2 2 2 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536859905 -1073711037 9 0 511 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
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-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
-->
</style>
<b style="mso-bidi-font-weight: normal;"><span style="font-family: inherit; font-size: 12.0pt;">Drawing on UIImage<br style="mso-special-character: line-break;" />
</span></b><br />
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Arial;
panose-1:2 11 6 4 2 2 2 2 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536859905 -1073711037 9 0 511 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
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-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
-->
</style>
<br />
<div class="MsoNormal">
<span style="font-family: inherit;">While developing the iOS
application we have many scenarios where we have to edit the image to add some
custom drawing over it or to add the text over it.<span style="mso-spacerun: yes;"> </span>Today we will learn how to do all these
functionality. </span><br />
<span style="font-family: inherit;"><span style="font-family: Times, Times New Roman, serif;"><br /></span>
</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7lDNxLA47LbQfCKgvNTZ5X7RoJvywu_EwgjzZgkYlpeKsBqjU6v7ddBM0PpsdGNG0361_gjAALVBrWy35djG1oRrAtXJraRpoconhFqi53DXSapR9buOlfHrhhcY0Utn62Clp2jEQ91Hw/s1600/Screen+Shot+2016-01-05+at+11.42.57+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7lDNxLA47LbQfCKgvNTZ5X7RoJvywu_EwgjzZgkYlpeKsBqjU6v7ddBM0PpsdGNG0361_gjAALVBrWy35djG1oRrAtXJraRpoconhFqi53DXSapR9buOlfHrhhcY0Utn62Clp2jEQ91Hw/s320/Screen+Shot+2016-01-05+at+11.42.57+pm.png" width="320" /></span></a></div>
<span style="font-family: inherit;"><span style="font-family: Times, Times New Roman, serif;"><br /></span>
</span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
<div class="MsoNormal">
<span style="font-family: inherit;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Arial, Helvetica, sans-serif;">For Doing that lets simply
create a singleview based project and add a UIImageview on it. Also add some
buttons to perform specific actions like drawing ,adding text and saving it to
camera roll. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Times, Times New Roman, serif;"><br /></span>
<span style="font-family: Times, Times New Roman, serif;">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Arial;
panose-1:2 11 6 4 2 2 2 2 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536859905 -1073711037 9 0 511 0;}
@font-face
{font-family:"MS 明朝";
mso-font-charset:78;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1791491579 18 0 131231 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073743103 0 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
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-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
a:link, span.MsoHyperlink
{mso-style-noshow:yes;
mso-style-priority:99;
color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-noshow:yes;
mso-style-priority:99;
color:purple;
mso-themecolor:followedhyperlink;
text-decoration:underline;
text-underline:single;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"MS 明朝";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
-->
</style>
</span></span><br />
<div class="MsoNormal">
<span style="font-family: Arial;"><span style="font-family: Arial, Helvetica, sans-serif;">Now open the view controller
and first create a function to add a line between two points. This we will use
when we will draw the lines.</span></span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span><br />
<div class="MsoNormal">
<span style="font-family: inherit;"><br /></span></div>
<span style="font-family: inherit;"><span style="font-family: Times, Times New Roman, serif;">
</span>
</span><br />
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span style="font-family: inherit;"><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">func</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> drawLineFrom(fromPoint: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
toPoint: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">) {</span></span></div>
<span style="font-family: inherit;">
</span>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span style="font-family: inherit;"><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsBeginImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></span></div>
<span style="font-family: inherit;">
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">
context = </span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsGetCurrentContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">image</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">?.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">drawInRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(x: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, y: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
width: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">width</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
height: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">height</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">))</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGContextMoveToPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(context,
fromPoint.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">x</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, fromPoint.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">y</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGContextAddLineToPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(context,
toPoint.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">x</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, toPoint.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">y</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGContextSetLineCap</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(context,
</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGLineCap</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">Round</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGContextSetLineWidth</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(context,
</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">pointerWidth</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGContextSetRGBStrokeColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(context,
</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">254.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">/</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">255.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> , </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">87.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">/</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">255.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">86.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">/</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">255.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">1.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGContextSetBlendMode</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(context,
</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGBlendMode</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">Normal</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGContextStrokePath</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(context)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">image</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsGetImageFromCurrentImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsEndImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">Now it’s the time to do the drawing for that override
the touch methods.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">Here I have added the condition to which mode it is
currently either in drawing or text. For text mode we will discuss it further.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">* Store the first point where user tapped</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">override</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">func</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">
touchesBegan(touches: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">Set</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UITouch</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">>,
withEvent event: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UIEvent</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">?) {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">editMode</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> == </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">ImageEditModes</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #26474b; font-family: Arial; mso-ansi-language: EN-US;">editModeDrawing</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">swiped</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">false</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;">//store
the first point where clicked</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> touch
= touches.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">first</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">lastPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> =
touch.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">locationInView</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">self</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">view</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>} </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">else</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">editMode</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> == </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">ImageEditModes</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #26474b; font-family: Arial; mso-ansi-language: EN-US;">editModeText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;">//store
the first point where clicked and unhide the textview if hidden to capture the
text</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> touch
= touches.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">first</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">lastPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> =
touch.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">locationInView</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">self</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">hidden</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> == </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">true</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">self</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">hidden</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">false</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGRectMake</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">lastPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">x</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">lastPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">y</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">width</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">height</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">txtCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">becomeFirstResponder</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">* Draw a small continuous line as user moves between the first
point and user moved point.<span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">override</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">func</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">
touchesMoved(touches: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">Set</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UITouch</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">>,
withEvent event: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UIEvent</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">?) {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">editMode</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> == </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">ImageEditModes</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #26474b; font-family: Arial; mso-ansi-language: EN-US;">editModeDrawing</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">swiped</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">true</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;">//
Draw a line in the image and display it</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> touch
= touches.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">first</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">
currentPoint = touch.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">locationInView</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">view</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #26474b; font-family: Arial; mso-ansi-language: EN-US;">drawLineFrom</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">lastPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
toPoint: currentPoint)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">lastPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> =
currentPoint</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">*Create a image and set it on the UIImageView to
display.</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">override</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">func</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">
touchesEnded(touches: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">Set</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UITouch</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">>,
withEvent event: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UIEvent</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">?) {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">editMode</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> == </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">ImageEditModes</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #26474b; font-family: Arial; mso-ansi-language: EN-US;">editModeDrawing</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> !</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">swiped</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> {</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #26474b; font-family: Arial; mso-ansi-language: EN-US;">drawLineFrom</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">lastPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
toPoint: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">lastPoint</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;">//Draw
the line and create the image to set on the imageview</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsBeginImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">image</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">?.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">drawInRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(x: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, y: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
width: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">width</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
height: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">height</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">),
blendMode: </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGBlendMode</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">Normal</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
alpha: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">1.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">image</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsGetImageFromCurrentImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsEndImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">Finally now it’s the time to save in on the Gallery.</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> Create a Image from the context and save it to the
image roll.</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsBeginImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">bounds</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">image</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">?.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">drawInRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(x: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, y: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">
</span>width: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">width</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
height: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">height</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">))</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> image
= </span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsGetImageFromCurrentImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsEndImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIImageWriteToSavedPhotosAlbum</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(image,
</span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">nil</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">nil</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">nil</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
N<span style="font-family: Arial;">ow you have completed the drawing part. Just run the app and check the drawing.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6gaXhEyq74j2BuXhMJ6IpVhaAo4Ch_2_8ibl-pgnGCJMAkDx0KajwM9lU-ZVbGOAN1AAqhBkwjzd9O6KA_GM1y18mSAD8pG7w7OdQiGI78W8fUgnv-HRfaVb2b9Hr35h6abfkPAnFSLca/s1600/Simulator+Screen+Shot+06-Jan-2016+12.40.20+am.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6gaXhEyq74j2BuXhMJ6IpVhaAo4Ch_2_8ibl-pgnGCJMAkDx0KajwM9lU-ZVbGOAN1AAqhBkwjzd9O6KA_GM1y18mSAD8pG7w7OdQiGI78W8fUgnv-HRfaVb2b9Hr35h6abfkPAnFSLca/s320/Simulator+Screen+Shot+06-Jan-2016+12.40.20+am.png" width="180" /></a></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Arial;">Writing text on UIImage</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Arial;">As from the above tutorial
we have added the drawing in the UIImage and now it’s the turn to add text
also. To implement that we will follow the approach to create the image from
the input text and then merge it with the old image.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Arial;">So let create a view
containing the Textview and add it on the <span style="mso-spacerun: yes;"> </span>view. </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;">//Create the view for input and add on the self view
and hide it.</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">
viewInputText = </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UIView</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(frame:</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGRectMake</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">33</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">40</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">))</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">
</span>viewInputText.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">backgroundColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UIColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">blackColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">
txtCorrection = </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UITextView</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(frame:</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">CGRectMake</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">5</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">5</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">23</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">30</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">) )</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">
</span>txtCorrection.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">delegate</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">self</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">
</span>txtCorrection.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">font</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UIFont</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">systemFontOfSize</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">11.0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">
</span>txtCorrection.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">textColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UIColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">whiteColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">
</span>txtCorrection.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">backgroundColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> = </span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">UIColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">clearColor</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">
</span>viewInputText.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">addSubview</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(txtCorrection)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">self</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">view</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">addSubview</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(viewInputText)</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmdPAY0SBG40jhq8BiX4I-Q-GMcWwVgIkKFTL1xiWjmQQlE4ORwchR0HJMVSNodYL3gOO7mG5_FdqIYNKL1JUaUdW3WE7NvmW90J3RjC2bC8S6hlM5vmO5G8EA5zO-Yvy8hyphenhyphenXx5tn_oAHW/s1600/Simulator+Screen+Shot+06-Jan-2016+12.02.50+am.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmdPAY0SBG40jhq8BiX4I-Q-GMcWwVgIkKFTL1xiWjmQQlE4ORwchR0HJMVSNodYL3gOO7mG5_FdqIYNKL1JUaUdW3WE7NvmW90J3RjC2bC8S6hlM5vmO5G8EA5zO-Yvy8hyphenhyphenXx5tn_oAHW/s320/Simulator+Screen+Shot+06-Jan-2016+12.02.50+am.png" width="180" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: Arial; mso-ansi-language: EN-US; mso-no-proof: yes;"></span><span style="font-family: Arial;"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Arial;">After adding the text now we
have to save the image on<span style="mso-spacerun: yes;"> </span>the camera
roll after user have entered the text.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;">//Draw
the text view to create a imagefrom it</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsBeginImageContextWithOptions</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">bounds</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">true</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">drawViewHierarchyInRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">bounds</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
afterScreenUpdates: </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">true</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">
imageWithText = </span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsGetImageFromCurrentImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsEndImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;">//create
a UIImage from the current context and save it to camera roll.</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsBeginImageContextWithOptions</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">bounds</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">true</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">image</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">?.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">drawInRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">CGRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(x: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, y: </span><span lang="EN-US" style="color: #1c00cf; font-family: Arial; mso-ansi-language: EN-US;">0</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>width: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">width</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">,
height: </span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">imgCorrection</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">size</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">height</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">))</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"></span><br />
<span style="font-family: Arial;"><span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;"> //Draw the text image in the current context to make a single image.</span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;">
</span>imageWithText.</span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">drawInRect</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(</span><span lang="EN-US" style="color: #3f6e74; font-family: Arial; mso-ansi-language: EN-US;">viewInputText</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">.</span><span lang="EN-US" style="color: #5c2699; font-family: Arial; mso-ansi-language: EN-US;">frame</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">let</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"> image
= </span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsGetImageFromCurrentImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIGraphicsEndImageContext</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">()</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #007400; font-family: Arial; mso-ansi-language: EN-US;">//save
image on the camera roll.</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="color: #2e0d6e; font-family: Arial; mso-ansi-language: EN-US;">UIImageWriteToSavedPhotosAlbum</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">(image,
</span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">nil</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">nil</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">, </span><span lang="EN-US" style="color: #aa0d91; font-family: Arial; mso-ansi-language: EN-US;">nil</span><span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">)</span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfGYj7DzN3NNy5yA4SVxzwFTeiJKdRxA3ls_Gj3ZU9_gd37CcC1u4rtwy5KwQuOFABYvkYHVBYmeqh2eFvjTTDJ3TSe7Ty5uVaQyVuANRv1pXivk3Dg3I934eqdtWGIkbdQMg7hVh-DvhL/s1600/Simulator+Screen+Shot+06-Jan-2016+12.28.33+am.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfGYj7DzN3NNy5yA4SVxzwFTeiJKdRxA3ls_Gj3ZU9_gd37CcC1u4rtwy5KwQuOFABYvkYHVBYmeqh2eFvjTTDJ3TSe7Ty5uVaQyVuANRv1pXivk3Dg3I934eqdtWGIkbdQMg7hVh-DvhL/s320/Simulator+Screen+Shot+06-Jan-2016+12.28.33+am.png" width="180" /></a></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; tab-stops: 26.45pt; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<div style="text-align: left;">
<span lang="EN-US" style="color: black; font-family: Arial; mso-ansi-language: EN-US;">Now you have done all the things for writing and
drawing. </span></div>
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span style="color: #222222; font-family: Arial; mso-fareast-font-family: "Times New Roman";">Here is </span><span style="color: blue; font-family: Arial; mso-fareast-font-family: "Times New Roman";"><a href="https://github.com/pradeep7may/Image-Annotation" target="_blank">sample project</a> </span><span style="color: #222222; font-family: Arial; mso-fareast-font-family: "Times New Roman";">with
all the code of the above tutorial.</span><br />
<span style="color: #222222; font-family: Arial; mso-fareast-font-family: "Times New Roman";">
If you face any issue or have any suggestions,please leave your comment.</span><br /><br />
</div>
</span></div>
<div class="MsoNormal">
<span style="font-family: "times" , "times new roman" , serif;"><br /></span>
</div>
<span id="goog_1788763039"></span><span id="goog_1788763040"></span>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com12tag:blogger.com,1999:blog-4470837025519971449.post-48811607934579478552015-07-29T00:35:00.002-07:002015-07-29T00:35:54.314-07:00iAd Integration in iOS using Swift<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="CENTER" style="margin-bottom: 0cm;">
<br />
</div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">In
most of the Apps we display the ads. Most of us have
displayed the ads using different ad networks like
adMob,iAd etc. Today, I will provide the details to
integrate iAds in your app using swift.<br /><br />The first requirement
to display the iAd is to import the iAd framework. In swift you can
import it by following way.<br /><br /><span style="color: #aa0d91;"> import</span><span style="color: black;">
iAd</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><br />Once
you have import the framework, you can display the iAd by
writing single line in view did load.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><br /><span style="color: black;"></span><span style="color: #aa0d91;"> override</span><span style="color: black;">
</span><span style="color: #aa0d91;">func</span><span style="color: black;">
viewDidLoad() </span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="color: black;"> {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #aa0d91;"> super</span><span style="color: black;">.</span><span style="color: #2e0d6e;">viewDidLoad</span><span style="color: black;">()</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #007400;"> //
Do any additional setup after loading the view, typically from a nib.</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #aa0d91;"> self</span><span style="color: black;">.</span><span style="color: #5c2699;">canDisplayBannerAds</span><span style="color: black;">
= </span><span style="color: #aa0d91;">true</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"> }<br /><br /><br />As
soon as you set the property true, your app will be able to display
the ads if iAd inventory will be available. <br /><br /><b>Note: </b>Make sure that you write
this line in viewDidLoad only.</span></span></div>
<div style="margin-bottom: 0cm;">
<br />
</div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="color: black;">To determine the success or failure of iAd you have to implement </span><span style="color: #5c2699;">ADBannerViewDelegate</span><span style="color: black;"> protocol that provides the callback when ad will load successfully or will fail.</span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="color: #aa0d91;"> func</span><span style="color: black;"> bannerViewDidLoadAd(banner: </span><span style="color: #5c2699;">ADBannerView</span><span style="color: black;">!) {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="color: #2e0d6e;"> println</span><span style="color: black;">(</span><span style="color: #c41a16;">"success"</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"> }<br /></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #aa0d91;"> func</span><span style="color: black;"> bannerView(banner: </span><span style="color: #5c2699;">ADBannerView</span><span style="color: black;">!, didFailToReceiveAdWithError</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"> error: <span style="color: #5c2699;">NSError</span><span style="color: black;">!) {</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #2e0d6e;"> println</span><span style="color: black;">(</span><span style="color: #c41a16;">"failed to load ad"</span><span style="color: black;">)</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"> banner.<span style="color: #2e0d6e;">removeFromSuperview</span><span style="color: black;">() </span><span style="color: #007400;">//Remove the banner if you have added it as subview (No ad)</span></span></span></div>
<br />
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"> }<span style="color: #aa0d91;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><br /></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="color: black;">This
was a simple way to display the ads but it will display the ad in the
bottom of your UI and reduce the view height when it will be loaded. </span></span>
</div>
<div style="margin-bottom: 0cm;">
<br />
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="color: black;"><b>Now
what you will do if you have to show it on the top of the screen ?
Don't worry I will also make it easy for you.</b></span></span></div>
<div style="margin-bottom: 0cm;">
<br />
</div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="color: black;">For
displaying the iAd on top of the view or any custom position, you have to
create a ADBannerView and add it in your view.</span></span></div>
<div style="margin-bottom: 0cm;">
<br />
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #3f6e74;"> bannerV</span><span style="color: black;">
= </span><span style="color: #5c2699;">ADBannerView</span><span style="color: black;">(adType:
</span><span style="color: #5c2699;">ADAdType</span><span style="color: black;">.</span><span style="color: #2e0d6e;">Banner</span><span style="color: black;">);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #3f6e74;"> bannerV</span><span style="color: black;">.</span><span style="color: #5c2699;">frame</span><span style="color: black;">
= </span><span style="color: #5c2699;">CGRect</span><span style="color: black;">(x:
</span><span style="color: #1c00cf;">0</span><span style="color: black;">, y: </span><span style="color: #1c00cf;">0</span><span style="color: black;">,
width: </span><span style="color: #1c00cf;">320</span><span style="color: black;">,
height: </span><span style="color: #1c00cf;">50</span><span style="color: black;">);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #3f6e74;"> bannerV</span><span style="color: black;">.</span><span style="color: #5c2699;">delegate</span><span style="color: black;">
= </span><span style="color: #aa0d91;">self</span><span style="color: black;">;</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="color: #aa0d91;"> self</span><span style="color: black;">.</span><span style="color: #5c2699;">view</span><span style="color: black;">.</span><span style="color: #2e0d6e;">addSubview</span><span style="color: black;">(</span><span style="color: #3f6e74;">bannerV</span><span style="color: black;">)<br /></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="color: #222222;"><span style="font-family: Arial, sans-serif;"><br />Here
is </span></span><span style="color: blue;"><span style="font-family: Arial, sans-serif;"><a href="https://github.com/pradeep7may/iAd" target="_blank">sample project</a> </span></span><span style="color: #222222;"><span style="font-family: Arial, sans-serif;">with
all the code of the above tutorial.<br /><br />If you face any issue or
have any suggestions, you can leave your comment.<br /></span></span></span></span><br />
</div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com9tag:blogger.com,1999:blog-4470837025519971449.post-2733268139283931872015-06-23T05:12:00.001-07:002015-06-23T05:12:08.803-07:00Core Data in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">For creating a persistence storage we were
previously use sqlite and perform all the basics
operations on them but now a days we use core data in our
applications. Using the core data in our application not only increase
performance but also saves lot of time and helps in creating a robust
application.<br /><br />From the below tutorial we will learn how to
use core data in iOS apps and also we will create a helper class that
will help us to integrate it in any project within few minutes. Also we will learn how to store NSArray in core data.<br /><br />Open Xcode and create a single view based
application.</span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCsSmG6gRaU_fQcjUIL983LLpQpGotD0fAIa4i1Q8ktuGHzavA3CtsZSxOIJ_Lm95A5qtW2w6_d-IJNKLQgKkJ40FZDAbp8TiQOpoMVhADziIfaa5P9U52-CTjGwFHU9pxWFiepInfhge/s1600/Screen+Shot+2015-06-15+at+4.02.21+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCsSmG6gRaU_fQcjUIL983LLpQpGotD0fAIa4i1Q8ktuGHzavA3CtsZSxOIJ_Lm95A5qtW2w6_d-IJNKLQgKkJ40FZDAbp8TiQOpoMVhADziIfaa5P9U52-CTjGwFHU9pxWFiepInfhge/s320/Screen+Shot+2015-06-15+at+4.02.21+pm.png" width="320" /></a></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_zKf3MmExW0slJYDY2ZbAbd_iaICf6O8AD5FphEOARgZvfl2P43bLNSVa_UOjW1AX8kdZvs9j6qCD7CQmwfBw_6_VTUXBQTmzFdYO4ouIksIOuGb0kigQ17JDjDPkaWcJZyRhCis8W30Z/s1600/Screen+Shot+2015-06-15+at+4.01.40+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_zKf3MmExW0slJYDY2ZbAbd_iaICf6O8AD5FphEOARgZvfl2P43bLNSVa_UOjW1AX8kdZvs9j6qCD7CQmwfBw_6_VTUXBQTmzFdYO4ouIksIOuGb0kigQ17JDjDPkaWcJZyRhCis8W30Z/s320/Screen+Shot+2015-06-15+at+4.01.40+pm.png" width="320" /></a></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br /><br /><br />While creating your application make sure
that use core data checkbox should be checked. You can also add the
core data in the existing project at any stage.</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br />So far we have
created a project with core data and now we will learn how to create a entity (same
as table in sqlite) and their attributes (same as columns in
sqlite).<br /><br />Open your .<b>xcdatamodeld</b> file and click on add
entity. This will create a table let's name it as Employee. Now to
store some employee informations add attributes employeeid,name and bankdetail. </span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br /></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu9MBNj_wN5A0v7GHzi1PjnKmR0TPfAWBBldAzqqgJP0O0ngp9FmSkUkB1F5eGwf0bwuDguYEfjW0TI6NRapkIcy5F8t1Phj6Oy24NTQZkDqqWSyk3rSnP4GWsS4AmazJslpL5ufQHSDLg/s1600/Screen+Shot+2015-06-15+at+4.28.00+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu9MBNj_wN5A0v7GHzi1PjnKmR0TPfAWBBldAzqqgJP0O0ngp9FmSkUkB1F5eGwf0bwuDguYEfjW0TI6NRapkIcy5F8t1Phj6Oy24NTQZkDqqWSyk3rSnP4GWsS4AmazJslpL5ufQHSDLg/s320/Screen+Shot+2015-06-15+at+4.28.00+pm.png" width="320" /></a></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br /></span></span>
<br />
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><b>Creating relationship in Core database</b>
– <span style="font-weight: normal;">We can use single entity for our integration purpose but to understand the relationship
in core data let's create a new Entity Bank with attributes
bankid,bankname.</span></span></span></h3>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;">Now change the editor style so that both the
entities are visible and create a relationship (select one entity and
hold and drag on other) and add the name of the
relationship.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjYWXBEsRqMJ5dIyY8a5FyqnGtmBXxocBSmJTrq7UY19Hz_1gz9eVlwKNEurbtALlgUN7X_O4rE0YZNc74KV_5pWleyzInA7_J1LxGQ8sTKEvafkWk_L1HyiIEoLM23ig-MSQSNC9rR0et/s1600/Screen+Shot+2015-06-15+at+4.55.58+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="289" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjYWXBEsRqMJ5dIyY8a5FyqnGtmBXxocBSmJTrq7UY19Hz_1gz9eVlwKNEurbtALlgUN7X_O4rE0YZNc74KV_5pWleyzInA7_J1LxGQ8sTKEvafkWk_L1HyiIEoLM23ig-MSQSNC9rR0et/s320/Screen+Shot+2015-06-15+at+4.55.58+pm.png" width="320" /></a></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHoVFD3SLPEn7EuvW4gbQdafwPmNKhCCKlNeVR0jdyZXCLCZrqXiYMmfrtZJQWSkUeYHjJQ2l72Zn6k3CZ73cY3xdQ9H5YQzN5mTDBmdj1ofkUIm83Jxj_zx-ZIJ2LQEQUW7GQhNk-4_1C/s1600/Screen+Shot+2015-06-15+at+5.01.47+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHoVFD3SLPEn7EuvW4gbQdafwPmNKhCCKlNeVR0jdyZXCLCZrqXiYMmfrtZJQWSkUeYHjJQ2l72Zn6k3CZ73cY3xdQ9H5YQzN5mTDBmdj1ofkUIm83Jxj_zx-ZIJ2LQEQUW7GQhNk-4_1C/s320/Screen+Shot+2015-06-15+at+5.01.47+pm.png" width="320" /></a></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br />To maintain the data uniqueness specify the delete rule to
<i><b>cascade</b></i>. So that if we delete record from one table
then record of other table will be automatically gets deleted.<br /><br />Now
the next step is to create the NSManagedSubclass for the above
entities. To create it select new file ->Core data -> Select
NSManagedSubclass ->Select Entities. <br /><br />So far you have created core data setup and you are ready to insert the data but before doing it there are some important terms that you should remember.</span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br /><b>Managed Object Model</b> - A managed object model can be refer as database schema that provides description of the entities. A managed object model is usually created by graphically using Xcode data model design tool. You have also created it above.<br /><br /><b>Managed Object Context -</b> You can think it like a scratch pad. When we work on core data we put a temporary copy on the scratch pad and work on it. However the original copy remains unchanged until we save the changes in persistent store.This is the most important part in core data you can think it as heart of the core data because all the operations insert,update,delete,fetch,maintaing relationships are performed using managed object context.</span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br /></span></span>
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><b>Persistent Store Coordinator - </b>You can treat this as a database connection. Here you specify which database to be use to store the data and where it is located.<br /><br />From the above you have get all the basic understanding of core data and its creation. Now, let's start the actual journey of using it in our code. :) </span></span><br />
<div style="margin-bottom: 0cm;">
<br />
<br /></div>
<div style="margin-bottom: 0cm;">
<br />
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><b>Inserting
Records in Core data –</b></span></span><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
</span></span></h3>
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Get
the managed object context. By default It will be created on app </span></span></span><span style="color: #007400; font-family: Arial, sans-serif; font-size: medium;">delegate but in our demo we have created it on our helper class.</span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> NSManagedObjectContext</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*managedObjectContext = [[</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">CoreDataHelper</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #26474b;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">sharedManager</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">]</span></span></span><span style="color: #26474b;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">managedObjectContext</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Create
a new entity in current managed context.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">Employee</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*empObj = (</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">Employee</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">*)[</span></span></span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSEntityDescription</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">insertNewObjectForEntityForName</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:</span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"Employee"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> </span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">inManagedObjectContext</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:managedObjectContext];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Set
the values</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">empObj.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">empid</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
= [</span></span></span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSNumber</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
</span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">numberWithInt</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:</span></span></span><span style="color: #1c00cf;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">1</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">empObj.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">name</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
= </span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"ABX"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Create
the bank object and set all the values.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">Bank</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*bankObj = (</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">Bank</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">*)[</span></span></span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSEntityDescription</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">insertNewObjectForEntityForName</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:</span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"Bank"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> </span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">inManagedObjectContext</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:managedObjectContext];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">bankObj.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">bankid</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
= [</span></span></span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSNumber</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
</span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">numberWithInt</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:</span></span></span><span style="color: #1c00cf;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">11</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">bankObj.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">bankname</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
= </span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"AXI"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Set
the relationship objects</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">empObj.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">bankrelation</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
= bankObj;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">bankObj.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">employeerelation</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
= empObj;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//save
function will save all the values in the database</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSError</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*error = </span></span></span><span style="color: #aa0d91;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">nil</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #aa0d91;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">if</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
(![managedObjectContext </span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">save</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:&error])</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSLog</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">(</span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"Unresolved
error %@, %@"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">,
error, [error </span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">userInfo</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">]);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><b><br /></b></span></span></div>
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><b>To
Fetch the Entity from Core Data</b></span></span></h3>
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"><br /> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Create
a NSFetchRequest object</span></span></span><br />
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSFetchRequest</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*fetchRequest = [[</span></span></span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSFetchRequest</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
</span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">alloc</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">]
</span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">init</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Get
the specified entity</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSEntityDescription</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*entity = [</span></span></span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSEntityDescription</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">entityForName</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:</span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"Employee"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">inManagedObjectContext</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:managedObjectContext];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSError</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*error =</span></span></span><span style="color: #aa0d91;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">nil</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Set
the entity in the fetch request</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">[fetchRequest
</span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">setEntity</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:entity];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Execute
the fetch request which will give the array of stored data</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSArray</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*fetchedObjects = [managedObjectContext </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">executeFetchRequest</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:fetchRequest
</span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">error</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:&error];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #aa0d91;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">for</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
(</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">Employee</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*emp </span></span></span><span style="color: #aa0d91;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">in</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
fetchedObjects)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSLog</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">(</span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"Name:
%@"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">,emp.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">name</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">Bank</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
*bank = emp.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">bankrelation</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSLog</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">(</span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"Bank
name: %@"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">,bank.</span></span></span><span style="color: #3f6e74;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">bankname</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">}</span></span></span><br />
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">To
get data in the sorting order create a </span></span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSSortDescriptor
</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">and
set it on fetch request.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="color: #5c2699;"> NSSortDescriptor</span><span style="color: black;">
*sortDescriptor = [[</span><span style="color: #5c2699;">NSSortDescriptor</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">initWithKey</span><span style="color: black;">:sortKey
</span><span style="color: #2e0d6e;">ascending</span><span style="color: black;">:</span><span style="color: #aa0d91;">YES</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="color: #5c2699;"> NSArray</span><span style="color: black;">
*sortDescriptors = [</span><span style="color: #5c2699;">NSArray</span><span style="color: black;">
</span><span style="color: #2e0d6e;">arrayWithObjects</span><span style="color: black;">:sortDescriptor,
</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> [</span><span style="color: black;">fetchRequest</span><span style="color: black;">
</span><span style="color: #2e0d6e;">setSortDescriptors</span><span style="color: black;">:sortDescriptors];</span><br /></span></span>
</div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">Further
if you want to get data on specific condition (same as applying where
clause in sqlite) create the NSPredicate and set it on fetchRequest
Object.</span></span></div>
<div style="margin-bottom: 0cm;">
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="color: black;"> [ </span><span style="color: black;">fetchRequest</span><span style="color: black;">
</span><span style="color: #2e0d6e;">setPredicate</span><span style="color: black;">:predicate];</span></span></span></div>
</div>
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><b><br />To
Delete the Entity from Core Data</b></span></span></h3>
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"><br /> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Pass
the object that you want to delete in delete Object function </span></span></span><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><br />
</span></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">[managedObjectContext
</span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">deleteObject</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:entityToDelete];</span></span></span><br />
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">//Save
the context so that changes gets saved on the database</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #aa0d91;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">if</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">
(![managedObjectContext </span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">save</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">:&error])</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">NSLog</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">(</span></span></span><span style="color: #c41a16;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">@"Unresolved
error %@, %@"</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">,
error, [error </span></span></span><span style="color: #2e0d6e;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">userInfo</span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">]);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif; font-size: medium;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;">}<br /></span></span></span></div>
<h3 style="text-align: left;">
</h3>
<h3 style="text-align: left;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><b>To
Update Records in Core data</b></span></span></span></h3>
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium; font-weight: normal;"><br />Updating a record in core data is very simple. Fetch the old record
from the database and set the new value of attribute that you want to
update and call the save function. That's all you have successfully
updated your record.</span></span></span><br />
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif; font-size: medium;"><br />Storing NSArray in Core Data</span></h3>
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;"><br />To store a NSArray in core data is a very easy task. Core data provides a attribute type called </span>transformable<span style="font-weight: normal;">. You have to simply create a entity of type transformable and assign the NSArray object to this attribute when you save your data. Core data internally use NSValueTransformer to convert it in NSData to save it.</span><br /><br />Watching Raw SQL Statement<br /><br /><span style="font-weight: normal;">To get the raw sql query that is executed behind the operation can be get by adding </span>com.apple.CoreData.SQLDebug 1<span style="font-weight: normal;"> under arguments tab in Run Scheme. </span><br />EditScheme -> Select Run Scheme -> Select Arguments Tab -> Add </span></span><span style="font-family: Arial, sans-serif; font-size: medium;">com.apple.CoreData.SQLDebug 1</span><span style="font-family: Arial, sans-serif;"><br /></span></h3>
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif;"><br /></span></h3>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;">From
the above you have learn how to use core data. For easy integration
of it we have created the CoreDataHelper classes that you can
directly integrate in your project.</span></span></span></span></div>
<h3 align="LEFT" class="western" style="line-height: 0.4cm; orphans: 1;">
<span style="color: #222222;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;"><span style="background: #ffffff;"><br /><br />Here
is </span></span></span></span></span><a href="https://github.com/pradeep7may/CoreData" target="_blank"><span style="color: blue;"><span style="text-decoration: none;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;"><span style="background: #ffffff;">sampleproject</span></span></span></span></span></span></a><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;"><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;"><span style="color: blue;"> </span>and Helper Class<span style="color: blue;"> </span></span></span></span></span><span style="color: #222222;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;"><span style="background: #ffffff;">with
all the code of the above tutorial.<br /></span></span></span></span></span>
</h3>
<h4 style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"><span style="font-weight: normal;">If
you face any issue or suggestions, please leave your comment.</span></span></span></span></h4>
<h3 align="LEFT" class="western" style="font-weight: normal; orphans: 1;">
<br /><br />
</h3>
<h3 style="text-align: left;">
<span style="font-weight: normal;"><span style="font-family: Arial, sans-serif;"><span style="font-size: medium;"> </span></span></span></h3>
</div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com6tag:blogger.com,1999:blog-4470837025519971449.post-19019604616489357182015-06-08T04:39:00.000-07:002015-06-10T03:06:45.511-07:00In App Purchase in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b><br /></b><span style="font-weight: normal;">In
App Purchase as the word explain itself that it means purchasing
inside the app. In iOS application you can get money with different
various methods like – Free ads,paid app and In App purchase. In
this tutorial you will get how to use the In App Purchase in your
application. </span></span>
</div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b>Type
of In App Purchase -</b></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<ol>
<li><div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b>Consumable</b><span style="font-weight: normal;">
– In this type of In App Purchase you can buy as many times as you
want. Ex – Purchasing a life in games</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
</div>
</li>
<li><div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b>Non-Consumable</b><span style="font-weight: normal;">
- In this type of In App Purchase you have to purchase only once
and you get product for always. Ex – Unlocking a feature in game</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
</div>
</li>
<li><div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b>Auto
Renewable Subscription</b><span style="font-weight: normal;"> – In
this types of In App Purchase user can subscribe a product for
certain period of time and after subscription period ends up it will
automatic renew. Ex – Subscribing a magazine for 3 months</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
</div>
</li>
<li><div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b>Non
Renewable Subscription –</b><span style="font-weight: normal;">
This is same as auto renewable subscription having difference that
product is not auto renew user have to explicitly renew it.</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
</div>
</li>
<li><div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b>Free
Subscription</b><span style="font-weight: normal;"> – In this type
of subscription user have not to give any money only he have to
subscribe it freely.</span></span></div>
</li>
</ol>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-weight: normal;">From
above we have learn about In App Purchase and its types now we will
learn how to use it in iOS app.</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-weight: normal;">For
using In App Purchase iOS provides </span><b>StoreKit</b><span style="font-weight: normal;">
framework for its implementation.<br /><br />First step that involve in
using In App Purchase is the configuration of it in iTunes connect. </span></span>
</div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<ol>
<li><div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-weight: normal;">Create
your app in iTunes connect. </span></span>
</div>
</li>
</ol>
<ol start="2">
<li><div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-weight: normal;">Click on your app icon that will open the detail shown in below screenshot.Navigate
to the InApp purchase section.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVsZI9qtmk67Q6_5dkAuBgL1jgiFZ-tM__9X5toWOFILskXcMkbHMsFpMPgnQsLZ67zBmoVoBVZYzglZpqSl3sOUlVPBWajBiDVRGM9U2jFBQacyyUtXZTTA_kq7aNjWpD_iIHQZiXZXfk/s1600/Screen+Shot+2015-06-08+at+4.17.25+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVsZI9qtmk67Q6_5dkAuBgL1jgiFZ-tM__9X5toWOFILskXcMkbHMsFpMPgnQsLZ67zBmoVoBVZYzglZpqSl3sOUlVPBWajBiDVRGM9U2jFBQacyyUtXZTTA_kq7aNjWpD_iIHQZiXZXfk/s320/Screen+Shot+2015-06-08+at+4.17.25+pm.png" width="320" /></a></span></span></div>
</li>
<li><div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-weight: normal;">Click on create new button and select the type of In App Purchase that you want to implement.</span></span></div>
</li>
<li><span style="font-family: Arial, sans-serif;">Now enter the Reference name,Product ID,Language,screenshot,review notes and select the price matrix.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDpWrbUtIOAa9A-7BW39D0s5eXd8ZK02-r_uPetUSo1TtaYUoeGgdsOL54AqnXW2O9VAK0LNgFW8tCJgUbRSiwjCCL90lXQPCXW7SsGZTy_L93KxIKL3JACsv6kdrlAIaKSK-7mH5kAQ7z/s1600/Screen+Shot+2015-06-08+at+4.23.33+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDpWrbUtIOAa9A-7BW39D0s5eXd8ZK02-r_uPetUSo1TtaYUoeGgdsOL54AqnXW2O9VAK0LNgFW8tCJgUbRSiwjCCL90lXQPCXW7SsGZTy_L93KxIKL3JACsv6kdrlAIaKSK-7mH5kAQ7z/s320/Screen+Shot+2015-06-08+at+4.23.33+pm.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPPL76bMpMgNwddNCAqyVr1Ysq7DiSLCeLsyGcfHAp7kRsJG8-88jshmjgFxTJS6e3LLyaN8aTQwHHmIrVIslUl_2o4uteJldXonKdEYKaAHro3V0rLgYQj6KCa5Ax0GqP-1CaOlaDF7BY/s1600/Screen+Shot+2015-06-08+at+4.23.53+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPPL76bMpMgNwddNCAqyVr1Ysq7DiSLCeLsyGcfHAp7kRsJG8-88jshmjgFxTJS6e3LLyaN8aTQwHHmIrVIslUl_2o4uteJldXonKdEYKaAHro3V0rLgYQj6KCa5Ax0GqP-1CaOlaDF7BY/s320/Screen+Shot+2015-06-08+at+4.23.53+pm.png" width="320" /></a></div>
<span style="font-family: Arial, sans-serif;"><span style="font-weight: normal;"><br /></span></span></li>
<li><span style="font-family: Arial, sans-serif;">Click on save and note the ProductID that you have created. We will use this ProductID in our app to fetch the detail and making payments.</span></li>
</ol>
<div align="LEFT" style="margin-bottom: 0cm;">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="font-family: Arial, sans-serif;"><span style="font-weight: normal;"><br /></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b>Retrieving
Product Information</b><span style="font-weight: normal;"> </span></span>
</div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">Before
getting product information we have to check that user can make
payments or not. If user can not make payments then we will show
alert to the user otherwise we will make request for getting product
information.</span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><b>Note</b><span style="font-weight: normal;">
– Here in this tutorial we are taking only one product. If you have
multiple product then pass all the product Ids in the </span><span style="color: black;"><span style="font-weight: normal;">arrayProducts</span></span><span style="font-weight: normal;">.
</span></span></span>
</div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">if</span><span style="color: black;">
([</span><span style="color: #5c2699;">SKPaymentQueue</span><span style="color: black;">
</span><span style="color: #2e0d6e;">canMakePayments</span><span style="color: black;">])</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;"> NSArray</span><span style="color: black;">
*arrayProducts = [</span><span style="color: #5c2699;">NSArray</span><span style="color: black;">
</span><span style="color: #2e0d6e;">arrayWithObjects</span><span style="color: black;">:</span><span style="color: black;"><i><b>PRODUCT_ID</b></i></span><span style="color: black;">,
</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">SKProductsRequest</span><span style="color: black;">
*productsRequest = [[</span><span style="color: #5c2699;">SKProductsRequest</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">] </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">initWithProductIdentifiers</span><span style="color: black; font-family: Arial, sans-serif;">:[</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSSet</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">setWithArray</span><span style="color: black; font-family: Arial, sans-serif;">:arrayProducts]];</span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">productsRequest.</span><span style="color: #5c2699;">delegate</span><span style="color: black;">
= </span><span style="color: #aa0d91;">self</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[productsRequest </span><span style="color: #2e0d6e;">start</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span><span style="color: #aa0d91;">else</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">callback</span><span style="color: black;">([</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
</span><span style="color: #2e0d6e;">dictionaryWithObjectsAndKeys</span><span style="color: black;">:</span><span style="color: #c41a16;">@"You
are restricted to </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #c41a16; font-family: Arial, sans-serif;">purchase."</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Message"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"0"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Success"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">]);</span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">Create
a SKProductsRequest object with product Ids and pass the delegate
that conforms its <span style="color: black;"><span style="font-style: normal;">SKProductsRequestDelegate
protocol</span></span>. It will fetch all the details from the iTunes
Connect. </span></span>
</div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">Now
to get the product details implement SKProductsRequestDelegates.</span></span></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: #643820;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">#pragma
mark SKProductRequest Delegates</span></span></span></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">-
(<span style="color: #aa0d91;">void</span>)productsRequest:(<span style="color: #5c2699;">SKProductsRequest</span>
*)request didReceiveResponse:(<span style="color: #5c2699;">SKProductsResponse</span>
*)response</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSArray</span><span style="color: black;">
*products = response.</span><span style="color: #5c2699;">products</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">if</span><span style="color: black;">
([products </span><span style="color: #2e0d6e;">count</span><span style="color: black;">]
> </span><span style="color: #1c00cf;">0</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">BOOL</span><span style="color: black; font-family: Arial, sans-serif;">
isExists = </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">FALSE</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">for</span><span style="color: black; font-family: Arial, sans-serif;">
(</span><span style="color: #5c2699; font-family: Arial, sans-serif;">SKProduct</span><span style="color: black; font-family: Arial, sans-serif;">
*product </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">in</span><span style="color: black; font-family: Arial, sans-serif;">
products)</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSLog</span><span style="color: black; font-family: Arial, sans-serif;">(</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"
Available %@ - %@ - %@ - %@"</span><span style="color: black; font-family: Arial, sans-serif;">,
product.</span><span style="color: #5c2699; font-family: Arial, sans-serif;">productIdentifier</span><span style="color: black; font-family: Arial, sans-serif;">, </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black; font-family: Arial, sans-serif;">product.</span><span style="color: #5c2699; font-family: Arial, sans-serif;">localizedTitle</span><span style="color: black; font-family: Arial, sans-serif;">,
product.</span><span style="color: #5c2699; font-family: Arial, sans-serif;">localizedDescription</span><span style="color: black; font-family: Arial, sans-serif;">,
product.</span><span style="color: #5c2699; font-family: Arial, sans-serif;">price</span><span style="color: black; font-family: Arial, sans-serif;">);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">if</span><span style="color: black; font-family: Arial, sans-serif;">
([product.</span><span style="color: #5c2699; font-family: Arial, sans-serif;">productIdentifier</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">isEqualToString</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #3f6e74; font-family: Arial, sans-serif;">productIdentifier</span><span style="color: black; font-family: Arial, sans-serif;">])</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">isExists
= </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">TRUE</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #26474b; font-family: Arial, sans-serif;">purchaseProduct</span><span style="color: black; font-family: Arial, sans-serif;">:product];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">if</span><span style="color: black; font-family: Arial, sans-serif;">
(!isExists)</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">.</span><span style="color: #3f6e74; font-family: Arial, sans-serif;">callback</span><span style="color: black; font-family: Arial, sans-serif;">([</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSDictionary</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">dictionaryWithObjectsAndKeys</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"No
product </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #c41a16; font-family: Arial, sans-serif;">available."</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Message"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"0"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Success"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">]);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">else</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">.</span><span style="color: #3f6e74; font-family: Arial, sans-serif;">callback</span><span style="color: black; font-family: Arial, sans-serif;">([</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSDictionary</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">dictionaryWithObjectsAndKeys</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"No
product </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #c41a16; font-family: Arial, sans-serif;">available."</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Message"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"0"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Success"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">]);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">From
above delegate we get all the product details. If the product ID we
get match with the product ID that we have used then make a call for
purchase. <br /><br /><b>Note </b>- Since here we have pass only one
ProductID so detail of only one product will come. If you have
multiple product then display all the above product details in a
UITableView with a Buy Button on each row. Once user click on buy
then call the below method <span style="color: #26474b;">purchaseProduct </span>and
pass SKProduct object.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)request:(</span><span style="color: #5c2699;">SKRequest</span><span style="color: black;">
*)request didFailWithError:(</span><span style="color: #5c2699;">NSError</span><span style="color: black;">
*)error</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">NSLog</span><span style="color: black;">(</span><span style="color: #c41a16;">@"Error!
%@"</span><span style="color: black;">,error);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">callback</span><span style="color: black;">([</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;"> </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">dictionaryWithObjectsAndKeys</span><span style="color: black; font-family: Arial, sans-serif;">:error.</span><span style="color: #5c2699; font-family: Arial, sans-serif;">localizedDescription</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Message"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"0"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Success"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">]);</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">}<br /><br />If
the product request gets fail then we will get the callback on
didFailWithError with the failure reason in error object.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><b><span style="color: black;">Purchase
a Product</span></b></span></span></h3>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">For
purchasing a product we create a SKPayment object with product object
we get in above delegate and add it to SKPaymentQueue. To get the
transaction state we add</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">transaction
observer which conforms </span></span><span style="color: #5c2699;">SKPaymentTransactionObserver</span><span style="color: black;"><span style="font-weight: normal;">
protocol. We have only one product so we have called this method in
above delegate once we get the product detail.</span></span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">-(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)purchaseProduct:(</span><span style="color: #5c2699;">SKProduct</span><span style="color: black;">*)product</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">if</span><span style="color: black;">
([</span><span style="color: #5c2699;">SKPaymentQueue</span><span style="color: black;">
</span><span style="color: #2e0d6e;">canMakePayments</span><span style="color: black;">])</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">SKPayment</span><span style="color: black;">
*payment = [</span><span style="color: #5c2699;">SKPayment</span><span style="color: black;">
</span><span style="color: #2e0d6e;">paymentWithProduct</span><span style="color: black;">:product];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[[</span><span style="color: #5c2699; font-family: Arial, sans-serif;">SKPaymentQueue</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">defaultQueue</span><span style="color: black; font-family: Arial, sans-serif;">]
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">addPayment</span><span style="color: black; font-family: Arial, sans-serif;">:payment];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[[</span><span style="color: #5c2699; font-family: Arial, sans-serif;">SKPaymentQueue</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">defaultQueue</span><span style="color: black; font-family: Arial, sans-serif;">]
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">addTransactionObserver</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">else</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">.</span><span style="color: #3f6e74; font-family: Arial, sans-serif;">callback</span><span style="color: black; font-family: Arial, sans-serif;">([</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSDictionary</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">dictionaryWithObjectsAndKeys</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"You
are not authorized to purchase from
AppStore."</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Message"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"0"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Success"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">]);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Menlo-Regular;"><span style="font-size: medium;"><span style="color: #643820;">#pragma
mark SKPaymentTransactionObserver</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)paymentQueue:(</span><span style="color: #5c2699;">SKPaymentQueue</span><span style="color: black;">
*)queue updatedTransactions:(</span><span style="color: #5c2699;">NSArray</span><span style="color: black;">
*)transactions</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">for</span><span style="color: black;">
(</span><span style="color: #5c2699;">SKPaymentTransaction</span><span style="color: black;">
*transaction </span><span style="color: #aa0d91;">in</span><span style="color: black;">
transactions)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">switch</span><span style="color: black; font-family: Arial, sans-serif;">
(transaction.</span><span style="color: #5c2699; font-family: Arial, sans-serif;">transactionState</span><span style="color: black; font-family: Arial, sans-serif;">)</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">SKPaymentTransactionStatePurchased</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">if</span><span style="color: black; font-family: Arial, sans-serif;">
([</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #26474b; font-family: Arial, sans-serif;">verifyReceipt</span><span style="color: black; font-family: Arial, sans-serif;">])</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #26474b; font-family: Arial, sans-serif;">completeTransaction</span><span style="color: black; font-family: Arial, sans-serif;">:transaction];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">else</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #26474b; font-family: Arial, sans-serif;">failedVerifyReceipt</span><span style="color: black; font-family: Arial, sans-serif;">:transaction];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">SKPaymentTransactionStateFailed</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #26474b; font-family: Arial, sans-serif;">failedTransaction</span><span style="color: black; font-family: Arial, sans-serif;">:transaction];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">SKPaymentTransactionStateRestored</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #26474b; font-family: Arial, sans-serif;">restoreTransaction</span><span style="color: black; font-family: Arial, sans-serif;">:transaction];</span><span style="color: #aa0d91; font-family: Arial, sans-serif;"> <br /> break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">default</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">The
above delegate gives the status of the purchase.It gives the status
based on whether it is failed,restored or Purchased.</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;"><br />-
(</span></span></span></span><span style="color: #aa0d91;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">void</span></span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">)completeTransaction:(</span></span></span></span><span style="color: #5c2699;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">SKPaymentTransaction</span></span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">
*)transaction</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[[</span><span style="color: #5c2699;">SKPaymentQueue</span><span style="color: black;">
</span><span style="color: #2e0d6e;">defaultQueue</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">finishTransaction</span><span style="color: black;">:transaction];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">callback</span><span style="color: black;">([</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
</span><span style="color: #2e0d6e;">dictionaryWithObjectsAndKeys</span><span style="color: black;">:</span><span style="color: #c41a16;">@"Purchase
completed."</span><span style="color: black;">,</span><span style="color: #c41a16;">@"Message"</span><span style="color: black;">,</span><span style="color: #c41a16;">@"1"</span><span style="color: black;">,</span><span style="color: #c41a16;">@"Success"</span><span style="color: black;">,</span><span style="color: #aa0d91;">nil</span><span style="color: black;">]);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)failedVerifyReceipt:(</span><span style="color: #5c2699;">SKPaymentTransaction</span><span style="color: black;">
*)transaction</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[[</span><span style="color: #5c2699;">SKPaymentQueue</span><span style="color: black;">
</span><span style="color: #2e0d6e;">defaultQueue</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">finishTransaction</span><span style="color: black;">:transaction];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">callback</span><span style="color: black;">([</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
</span><span style="color: #2e0d6e;">dictionaryWithObjectsAndKeys</span><span style="color: black;">:</span><span style="color: #c41a16;">@"Verify
receipt failed."</span><span style="color: black;">,</span><span style="color: #c41a16;">@"Message"</span><span style="color: black;">,</span><span style="color: #c41a16;">@"0"</span><span style="color: black;">,</span><span style="color: #c41a16;">@"Success"</span><span style="color: black;">,</span><span style="color: #aa0d91;">nil</span><span style="color: black;">]);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)failedTransaction:(</span><span style="color: #5c2699;">SKPaymentTransaction</span><span style="color: black;">
*)transaction</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">if</span><span style="color: black;">
(transaction.</span><span style="color: #5c2699;">error</span><span style="color: black;">.</span><span style="color: #5c2699;">code</span><span style="color: black;">
!= </span><span style="color: #2e0d6e;">SKErrorPaymentCancelled</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">.</span><span style="color: #3f6e74; font-family: Arial, sans-serif;">callback</span><span style="color: black; font-family: Arial, sans-serif;">([</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSDictionary</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">dictionaryWithObjectsAndKeys</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Transaction </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #c41a16; font-family: Arial, sans-serif;">Failed!"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Message"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"0"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Success"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">]);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">else</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">self</span><span style="color: black; font-family: Arial, sans-serif;">.</span><span style="color: #3f6e74; font-family: Arial, sans-serif;">callback</span><span style="color: black; font-family: Arial, sans-serif;">([</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSDictionary</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">dictionaryWithObjectsAndKeys</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Transaction </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #c41a16; font-family: Arial, sans-serif;">Cancelled"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Message"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"0"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Success"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">]);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[[</span><span style="color: #5c2699;">SKPaymentQueue</span><span style="color: black;">
</span><span style="color: #2e0d6e;">defaultQueue</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">finishTransaction</span><span style="color: black;">:
transaction];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)restoreTransaction:(</span><span style="color: #5c2699;">SKPaymentTransaction</span><span style="color: black;">
*)transaction</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[[</span><span style="color: #5c2699;">SKPaymentQueue</span><span style="color: black;">
</span><span style="color: #2e0d6e;">defaultQueue</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">finishTransaction</span><span style="color: black;">:transaction];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">callback</span><span style="color: black;">([</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
</span><span style="color: #2e0d6e;">dictionaryWithObjectsAndKeys</span><span style="color: black;">:</span><span style="color: #c41a16;">@"Transaction
restore </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #c41a16; font-family: Arial, sans-serif;">successfully."</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Message"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"1"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Success"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">]);</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">}</span><span style="color: black;"><span style="font-weight: normal;">
</span></span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">Depending
on the above purchased status finish the transaction observer and
inform the user.</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">For
the security point of view and unauthorized access of copies of you
application add the verifyReceipt code to get the receipt validated. </span></span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">-
(</span></span><span style="color: #aa0d91;"><span style="font-weight: normal;">BOOL</span></span><span style="color: black;"><span style="font-weight: normal;">)verifyReceipt</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSURL</span><span style="color: black;">
*receiptFileURL = [[</span><span style="color: #5c2699;">NSBundle</span><span style="color: black;">
</span><span style="color: #2e0d6e;">mainBundle</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">appStoreReceiptURL</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSData</span><span style="color: black;">
*receiptData = [</span><span style="color: #5c2699;">NSData</span><span style="color: black;">
</span><span style="color: #2e0d6e;">dataWithContentsOfURL</span><span style="color: black;">:receiptFileURL];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSString</span><span style="color: black;">
*recieptString = [receiptData
</span><span style="color: #2e0d6e;">base64EncodedStringWithOptions</span><span style="color: black;">:</span><span style="color: #2e0d6e;">kNilOptions</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
*jsonDict = [</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;"> </span></span></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">dictionaryWithObjectsAndKeys</span><span style="color: black; font-family: Arial, sans-serif;">:recieptString,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"receipt-</span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #c41a16; font-family: Arial, sans-serif;">data"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"827d5be5c5944b3db18bbb0278c3e8bd"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"password"</span><span style="color: black; font-family: Arial, sans-serif;">,
</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSError</span><span style="color: black;">
*error;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSData</span><span style="color: black;">
*requestData = [</span><span style="color: #5c2699;">NSJSONSerialization</span><span style="color: black;">
</span><span style="color: #2e0d6e;">dataWithJSONObject</span><span style="color: black;">:jsonDict</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">options</span><span style="color: black;">:</span><span style="color: #1c00cf;">0 </span></span></span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">error</span><span style="color: black; font-family: Arial, sans-serif;">:&error];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">if</span><span style="color: black;">
(requestData)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">//NSURL
*url =[NSURL
URLWithString:@"</span></span></span><a href="https://buy.itunes.apple.com/verifyReceipt"><span style="color: #0e0eff;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">https://buy.itunes.apple.com/verifyReceipt</span></span></span></a><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">"];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSURL</span><span style="color: black; font-family: Arial, sans-serif;">
*url = [</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSURL</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">URLWithString</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"https://sandbox.itunes.apple.com/verifyReceipt"</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSMutableURLRequest</span><span style="color: black; font-family: Arial, sans-serif;">
*request = [</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSMutableURLRequest</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">requestWithURL</span><span style="color: black; font-family: Arial, sans-serif;">:url
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">cachePolicy</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSURLRequestUseProtocolCachePolicy</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">timeoutInterval</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #1c00cf; font-family: Arial, sans-serif;">60.0</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[request
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">setHTTPMethod</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"POST"</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[request
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">setValue</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"application/json"</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">forHTTPHeaderField</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Accept"</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[request
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">setValue</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"application/json"</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">forHTTPHeaderField</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Content-Type"</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[request
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">setValue</span><span style="color: black; font-family: Arial, sans-serif;">:[</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSString</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">stringWithFormat</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"%lu"</span><span style="color: black; font-family: Arial, sans-serif;">,
(</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">unsigned</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">long</span><span style="color: black; font-family: Arial, sans-serif;">)</span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black; font-family: Arial, sans-serif;">[requestData
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">length</span><span style="color: black; font-family: Arial, sans-serif;">]]
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">forHTTPHeaderField</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Content-Length"</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[request
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">setHTTPBody</span><span style="color: black; font-family: Arial, sans-serif;">:requestData];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSURLResponse</span><span style="color: black; font-family: Arial, sans-serif;">
*response;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSData</span><span style="color: black; font-family: Arial, sans-serif;">*
result = [</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSURLConnection</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">sendSynchronousRequest</span><span style="color: black; font-family: Arial, sans-serif;">:request </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">returningResponse</span><span style="color: black; font-family: Arial, sans-serif;">:&response
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">error</span><span style="color: black; font-family: Arial, sans-serif;">:&error];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSDictionary</span><span style="color: black; font-family: Arial, sans-serif;">
*jsonResponse = [</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSJSONSerialization</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">JSONObjectWithData</span><span style="color: black; font-family: Arial, sans-serif;">:result
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">options</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSJSONReadingAllowFragments</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">error</span><span style="color: black; font-family: Arial, sans-serif;">:&error];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">if</span><span style="color: black; font-family: Arial, sans-serif;">(jsonResponse)</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">int</span><span style="color: black; font-family: Arial, sans-serif;">
status = [[jsonResponse </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">objectForKey</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"status"</span><span style="color: black; font-family: Arial, sans-serif;">]
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">intValue</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">if</span><span style="color: black; font-family: Arial, sans-serif;">(status
== </span><span style="color: #1c00cf; font-family: Arial, sans-serif;">0</span><span style="color: black; font-family: Arial, sans-serif;">)</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span class="s1">NSDictionary</span> *dicReceipt = [jsonResponse <span class="s2">objectForKey</span>:<span class="s3">@"receipt"</span>];<br />
<div class="p2">
<span class="s4"> </span><span class="s2">NSLog</span><span class="s4">(</span>@"Receipt Information - %@ "<span class="s4">, dicReceipt);</span></div>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">return</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">YES</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">else</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">return</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">NO</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">else</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">return</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">NO</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">else</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">return</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">NO</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><b>Note</b><span style="font-weight: normal;">
– Don't forgot to comment sandbox url while submitting your app. </span></span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">This
was all for implementing In App Purchase in your application. But
wait there is one more important thing left that your application
should include. </span></span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br />
<h3 style="text-align: left;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><b>Restoring
Transactions </b></span></span></span></h3>
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;"><br />This
is provided to restore transaction when user switch to another device
and want to get its purchase back on new device. Provide a button on
your UI to get user restore there In App Purchase.</span></span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">-
(</span></span><span style="color: #aa0d91;"><span style="font-weight: normal;">void</span></span><span style="color: black;"><span style="font-weight: normal;">)restoreCompletedTransactions</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[[</span><span style="color: #5c2699;">SKPaymentQueue</span><span style="color: black;">
</span><span style="color: #2e0d6e;">defaultQueue</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">restoreCompletedTransactions</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;"><br /></span></span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><b>Testing
your In App Purchase - </b></span></span></span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;"><br />To
test your application in sandbox mode create a sandbox tester account
in iTunes connect. </span></span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;"><br />1) Login
to iTunes</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">2)
Select User and Roles</span></span></div>
<div style="margin-bottom: 0cm;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjql23h0P4LmJYWCagJD7-9yHXEpGFTfqUz_-sbedIUiHWLNk4Ls5syFhASxTtqnxUlXNJvJUocSDbrrA4lU8TyF1Rl4JDvlDW-wv42VujRW34Du_A3PCFuoWis1icNlmyuzNn8krOe-VUE/s1600/Screen+Shot+2015-06-07+at+5.36.22+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjql23h0P4LmJYWCagJD7-9yHXEpGFTfqUz_-sbedIUiHWLNk4Ls5syFhASxTtqnxUlXNJvJUocSDbrrA4lU8TyF1Rl4JDvlDW-wv42VujRW34Du_A3PCFuoWis1icNlmyuzNn8krOe-VUE/s320/Screen+Shot+2015-06-07+at+5.36.22+pm.png" width="320" /></a></div>
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">3)
Select the Sandbox Tester tab and add a test account to test your In
App Purchase.</span></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhODaJ9vUXqTXRGn2Oslccbd6kybpE6MH-kt8V9hVdHm1irP-3jeOKs9_U0OGC-btSgyI-ZEoreinM1eQvRSqVfSl1qLRsXNmf92Iex2fIxRO6OjhsmHeS0Zmt_zlvYpO5HgK7LYTgOxSbt/s1600/Screen+Shot+2015-06-07+at+5.38.57+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhODaJ9vUXqTXRGn2Oslccbd6kybpE6MH-kt8V9hVdHm1irP-3jeOKs9_U0OGC-btSgyI-ZEoreinM1eQvRSqVfSl1qLRsXNmf92Iex2fIxRO6OjhsmHeS0Zmt_zlvYpO5HgK7LYTgOxSbt/s320/Screen+Shot+2015-06-07+at+5.38.57+pm.png" width="320" /></a></div>
<br />
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">That was all for In App Purchase. Keep enjoying to add it and get paid.
:)</span><br />
<span style="color: #222222;"><span style="font-family: Arial, sans-serif;"><br /></span></span>
<span style="color: #222222;"><span style="font-family: Arial, sans-serif;">Here
is </span></span><span style="color: blue;"><span style="font-family: Arial, sans-serif;"><a href="https://github.com/pradeep7may/InAppPurchase" target="_blank"><span style="color: blue;">sample project</span></a> </span></span><span style="color: #222222;"><span style="font-family: Arial, sans-serif;">with
all the code of the above tutorial. Pass your product ID in tutorial
to test your In App Purchase. Use InAppPurcahseHelper class to
easily integrate In App Purchase on your code. <br /><br />If you face any issue,leave your comment. </span></span></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com5tag:blogger.com,1999:blog-4470837025519971449.post-43076501560779825932015-05-13T12:05:00.000-07:002015-05-14T04:18:34.446-07:00Presenting Landscape View in Portrait Orientation iOS app<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arail;"><span style="font-size: small;">We
develop lots of application where there is the requirement of opening
a particular screen in the landscape mode while all the other screens
are in the portrait mode. So how can we achieve this. Could we have
to do transformation to rotate it. The answer is simple no. Why
should we do transformation when there is a better way to do that. In
next 15 minutes you will be able learn to do it. </span></span>
</div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arail;"><span style="font-size: small;">To
do this we have to create a Custom Navigation Controller that
supports only Landscape View.</span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arail;"><span style="font-size: small;">1)
Create a .h file and declare a class that Inherits
UINavigationController.</span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arail;"><span style="font-size: small;"><span style="color: #aa0d91;">@interface</span><span style="color: black;">
CustomNavigationControllerViewController : </span><span style="color: #5c2699;">UINavigationController</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: #aa0d91;"><span style="font-family: Arail;"><span style="font-size: small;">@end</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arail;"><span style="font-size: small;">2)
Now create a .m file and declare the supported interface orientation
in to be Landscape in this.</span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arail;"><span style="font-size: small;"><span style="color: #aa0d91;">@implementation</span><span style="color: black;">
CustomNavigationControllerViewController</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arail;"><span style="font-size: small;"><span style="color: black;">-
(</span><span style="color: #5c2699;">NSUInteger</span><span style="color: black;">)supportedInterfaceOrientations</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arail;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arail;"><span style="font-size: small;"><span style="color: #aa0d91;"> return</span><span style="color: black;">
</span><span style="color: #2e0d6e;">UIInterfaceOrientationMaskLandscape</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arail;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arail;"><span style="font-size: small;">Now
you are done the only thing remain is to setup your project.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arail;"><span style="font-size: small;">3)
Create a UIViewController that is to be presented in the landscape
mode.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arail;"><span style="font-size: small;">4)
Now simply create a CustomNavigationControllerViewController class
object with root view as UIViewController that is to be presented in
the landscape view.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arail;"><span style="font-size: small;"><span style="color: #3f6e74;">LandscapeView</span><span style="color: black;">
*landscape = [[</span><span style="color: #3f6e74;">LandscapeView</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">initWithNibName</span><span style="color: black;">:</span><span style="color: #c41a16;">@"LandscapeView"</span><span style="color: black;">
</span><span style="color: #2e0d6e;">bundle</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arail;"><span style="font-size: small;"><span style="color: #3f6e74;">CustomNavigationControllerViewController</span><span style="color: black;">
*nav = [[</span><span style="color: #3f6e74;">CustomNavigationControllerViewController</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">initWithRootViewController</span><span style="color: black;">:landscape];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
<span style="font-family: Arail;"><span style="font-size: small;">nav.</span><span style="color: #5c2699;">navigationBarHidden</span><span style="color: black;">
= </span><span style="color: #aa0d91;">true</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arail;"><span style="font-size: small;">[</span><span style="color: #aa0d91;">self</span><span style="color: black;">
</span><span style="color: #2e0d6e;">presentViewController</span><span style="color: black;">:nav
</span><span style="color: #2e0d6e;">animated</span><span style="color: black;">:</span><span style="color: #aa0d91;">YES</span><span style="color: black;">
</span><span style="color: #2e0d6e;">completion</span><span style="color: black;">:^{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arail;"><span style="font-size: small;">}];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arail;"><span style="font-size: small;">5) Now
present the CustomNavigationControllerViewController inside the
portrait screen. It should keep in the mind to disable the
orientation and restrict the portrait mode.</span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<br />
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px; line-height: 18.4799995422363px;"><span style="font-family: Arial, sans-serif;">H</span></span><span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;">ere is <a href="https://github.com/pradeep7may/Presenting-landscape-view-on-portrait-App" style="color: #888888; text-decoration: none;" target="_blank"><span style="color: blue;">sample project</span></a></span><span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;"> with all of the code from the above tutorial.</span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;"><br /></span></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com2tag:blogger.com,1999:blog-4470837025519971449.post-2300714092687553172015-05-05T07:55:00.003-07:002015-05-07T09:07:30.212-07:00Blur View Implementation in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Arial, sans-serif; font-size: small;">Creating Blur Background from UIView</span></h3>
<div>
<span style="font-family: Arial, sans-serif; font-size: large;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">We
have seen lots of the applications where there is the blurred view in
the background of the screen that is generated at runtime. We can
create the blurred image from the current screen by applying Gaussian
blur. </span></span>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv6VkHY90Kx4Y3bhnUx_1_t53RwU2WHJJH7OgroBEOswYJbcDVa-JoomYLGGNamSb61TicHbVtrsorJ03NYSpuEs_WiH6IM2ktKFnJ3YCNDuWIqY57YJTiuyWLy1bDjG4QjODrP9KKfPDw/s1600/iOS+Simulator+Screen+Shot+04-May-2015+11.45.51+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv6VkHY90Kx4Y3bhnUx_1_t53RwU2WHJJH7OgroBEOswYJbcDVa-JoomYLGGNamSb61TicHbVtrsorJ03NYSpuEs_WiH6IM2ktKFnJ3YCNDuWIqY57YJTiuyWLy1bDjG4QjODrP9KKfPDw/s320/iOS+Simulator+Screen+Shot+04-May-2015+11.45.51+pm.png" width="180" /></a></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm; text-align: center;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"> Original
Screen</span></span></div>
<div style="margin-bottom: 0cm; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGMravKcCOZwy7B3McTdnV17jJHjw4PTzlnANJZuBGX00coTCXbRYOk2BtlffaEQg7yLESSZjmFpRCmhuJ7tJSQ_s7r1F04gwMtwxMfu9aH92jAwtG8jgQVMyjZRkYimQ2HiKsNfQ9twSn/s1600/iOS+Simulator+Screen+Shot+04-May-2015+11.44.40+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGMravKcCOZwy7B3McTdnV17jJHjw4PTzlnANJZuBGX00coTCXbRYOk2BtlffaEQg7yLESSZjmFpRCmhuJ7tJSQ_s7r1F04gwMtwxMfu9aH92jAwtG8jgQVMyjZRkYimQ2HiKsNfQ9twSn/s320/iOS+Simulator+Screen+Shot+04-May-2015+11.44.40+pm.png" width="180" /></a></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm; text-align: center;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"> Blur
View of Screen</span></span></div>
<div style="margin-bottom: 0cm; text-align: center;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">//
Create a graphics context for creating the Image from the UIView</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">UIGraphicsBeginImageContext</span><span style="color: black;">(screenView.</span><span style="color: #5c2699;">bounds</span><span style="color: black;">.</span><span style="color: #5c2699;">size</span><span style="color: black;">);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
Render the screen in the current graphics contect</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[screenView.</span><span style="color: #5c2699;">layer</span><span style="color: black;">
</span><span style="color: #2e0d6e;">renderInContext</span><span style="color: black;">:</span><span style="color: #2e0d6e;">UIGraphicsGetCurrentContext</span><span style="color: black;">()];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
Get the UIImage of the view</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">UIImage</span><span style="color: black;">
*viewImage = </span><span style="color: #2e0d6e;">UIGraphicsGetImageFromCurrentImageContext</span><span style="color: black;">();</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">UIGraphicsEndImageContext</span><span style="color: black;">();</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CGRect</span><span style="color: black;">
rectCrop = </span><span style="color: #2e0d6e;">CGRectMake</span><span style="color: black;">(</span><span style="color: #1c00cf;">0</span><span style="color: black;">,</span><span style="color: #1c00cf;">0</span><span style="color: black;">,[</span><span style="color: #5c2699;">UIScreen</span><span style="color: black;">
</span><span style="color: #2e0d6e;">mainScreen</span><span style="color: black;">].</span><span style="color: #5c2699;">bounds</span><span style="color: black;">.</span><span style="color: #5c2699;">size</span><span style="color: black;">.</span><span style="color: #5c2699;">width</span><span style="color: black;">,[</span><span style="color: #5c2699;">UIScreen</span><span style="color: black;">
</span><span style="color: #2e0d6e;">mainScreen</span><span style="color: black;">].</span><span style="color: #5c2699;">bounds</span><span style="color: black;">.</span><span style="color: #5c2699;">size</span><span style="color: black;">.</span><span style="color: #5c2699;">height</span><span style="color: black;">);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
the ImageRef with the rect of device size</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CGImageRef</span><span style="color: black;">
imageRef = </span><span style="color: #2e0d6e;">CGImageCreateWithImageInRect</span><span style="color: black;">([viewImage
</span><span style="color: #2e0d6e;">CGImage</span><span style="color: black;">],
rectCrop);</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
the UIImage from the imageRef </span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">UIImage</span><span style="color: black;">
*newImage = [</span><span style="color: #5c2699;">UIImage</span><span style="color: black;">
</span><span style="color: #2e0d6e;">imageWithCGImage</span><span style="color: black;">:imageRef
</span><span style="color: #2e0d6e;">scale</span><span style="color: black;">:</span><span style="color: #1c00cf;">1.0</span><span style="color: black;">
</span><span style="color: #2e0d6e;">orientation</span><span style="color: black;">:viewImage.</span><span style="color: #5c2699;">imageOrientation</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
a core image input context</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CIContext</span><span style="color: black;">
*context = [</span><span style="color: #5c2699;">CIContext</span><span style="color: black;">
</span><span style="color: #2e0d6e;">contextWithOptions</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
a new image from content of previous image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CIImage</span><span style="color: black;">
*inputImage = [</span><span style="color: #5c2699;">CIImage</span><span style="color: black;">
</span><span style="color: #2e0d6e;">imageWithCGImage</span><span style="color: black;">:newImage.</span><span style="color: #5c2699;">CGImage</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
setting up Gaussian Blur (we could use one of many filters offered by
Core Image)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CIFilter</span><span style="color: black;">
*filter = [</span><span style="color: #5c2699;">CIFilter</span><span style="color: black;">
</span><span style="color: #2e0d6e;">filterWithName</span><span style="color: black;">:</span><span style="color: #c41a16;">@"CIGaussianBlur"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Set
the input image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[filter
</span><span style="color: #2e0d6e;">setValue</span><span style="color: black;">:inputImage
</span><span style="color: #2e0d6e;">forKey</span><span style="color: black;">:</span><span style="color: #5c2699;">kCIInputImageKey</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Set
the input radius - Chnage this value for different blur level</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[filter
</span><span style="color: #2e0d6e;">setValue</span><span style="color: black;">:[</span><span style="color: #5c2699;">NSNumber</span><span style="color: black;">
</span><span style="color: #2e0d6e;">numberWithFloat</span><span style="color: black;">:blurValue]
</span><span style="color: #2e0d6e;">forKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"inputRadius"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//get
the output for image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CIImage</span><span style="color: black;">
*result = [filter </span><span style="color: #2e0d6e;">valueForKey</span><span style="color: black;">:</span><span style="color: #5c2699;">kCIOutputImageKey</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
CIGaussianBlur has a tendency to shrink the image a little,</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
this ensures it matches up exactly to the bounds of our original
image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CGImageRef</span><span style="color: black;">
cgImage = [context </span><span style="color: #2e0d6e;">createCGImage</span><span style="color: black;">:result
</span><span style="color: #2e0d6e;">fromRect</span><span style="color: black;">:[inputImage
</span><span style="color: #2e0d6e;">extent</span><span style="color: black;">]];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
the UIImage from the new blurred image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">UIImage</span><span style="color: black;">
*imgRef = [[</span><span style="color: #5c2699;">UIImage</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">initWithCGImage</span><span style="color: black;">:cgImage];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<h2 style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Arial, sans-serif; font-size: large;">To
Create a Blur Image from original image</span></h2>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">We
can create a blur image from the original Image same by applying the
Gaussian blur on UIImage.</span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFj-Y72GYs5vZ1oRXlSmDrbQJ6um-QOiwt7CQrFZXuK3_cL4v3-OliEj5NDWFtjW6mgQfcjvx1agcq0a0cmOvHNO6G1qqd_BhKqGF1vVax27QqPJbrQz2Is4RhtxqMCuc9VpIdOtVFJ6t5/s1600/iOS+Simulator+Screen+Shot+05-May-2015+12.32.38+am.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFj-Y72GYs5vZ1oRXlSmDrbQJ6um-QOiwt7CQrFZXuK3_cL4v3-OliEj5NDWFtjW6mgQfcjvx1agcq0a0cmOvHNO6G1qqd_BhKqGF1vVax27QqPJbrQz2Is4RhtxqMCuc9VpIdOtVFJ6t5/s320/iOS+Simulator+Screen+Shot+05-May-2015+12.32.38+am.png" width="180" /></a></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
a core image input context</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CIContext</span><span style="color: black;">
*context = [</span><span style="color: #5c2699;">CIContext</span><span style="color: black;">
</span><span style="color: #2e0d6e;">contextWithOptions</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
a new image from content of previous image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CIImage</span><span style="color: black;">
*inputImage = [</span><span style="color: #5c2699;">CIImage</span><span style="color: black;">
</span><span style="color: #2e0d6e;">imageWithCGImage</span><span style="color: black;">:viewImage.</span><span style="color: #5c2699;">CGImage</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
setting up Gaussian Blur (we could use one of many filters offered by
Core Image)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CIFilter</span><span style="color: black;">
*filter = [</span><span style="color: #5c2699;">CIFilter</span><span style="color: black;">
</span><span style="color: #2e0d6e;">filterWithName</span><span style="color: black;">:</span><span style="color: #c41a16;">@"CIGaussianBlur"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Set
the input image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[filter
</span><span style="color: #2e0d6e;">setValue</span><span style="color: black;">:inputImage
</span><span style="color: #2e0d6e;">forKey</span><span style="color: black;">:</span><span style="color: #5c2699;">kCIInputImageKey</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Set
the input radius - Chnage this value for different blur level</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[filter
</span><span style="color: #2e0d6e;">setValue</span><span style="color: black;">:[</span><span style="color: #5c2699;">NSNumber</span><span style="color: black;">
</span><span style="color: #2e0d6e;">numberWithFloat</span><span style="color: black;">:blurValue]
</span><span style="color: #2e0d6e;">forKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"inputRadius"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//get
the output for image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CIImage</span><span style="color: black;">
*result = [filter </span><span style="color: #2e0d6e;">valueForKey</span><span style="color: black;">:</span><span style="color: #5c2699;">kCIOutputImageKey</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
CIGaussianBlur has a tendency to shrink the image a little,</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
this ensures it matches up exactly to the bounds of our original
image</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">CGImageRef</span><span style="color: black;">
cgImage = [context </span><span style="color: #2e0d6e;">createCGImage</span><span style="color: black;">:result
</span><span style="color: #2e0d6e;">fromRect</span><span style="color: black;">:[inputImage
</span><span style="color: #2e0d6e;">extent</span><span style="color: black;">]];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
the UIImage from the new blurred image</span></span></span></div>
<br />
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">UIImage</span><span style="color: black;">
*imgRef = [[</span><span style="color: #5c2699;">UIImage</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">initWithCGImage</span><span style="color: black;">:cgImage];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.1999998092651px; line-height: 18.4799995422363px;"><span style="font-family: Arial, sans-serif;">H</span></span><span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;">ere is <a href="https://github.com/pradeep7may/BlurBackground" style="color: #888888; text-decoration: none;" target="_blank"><span style="color: blue;">sample project</span></a></span><span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;"> with all of the code from the above tutorial.</span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<span style="background-color: white; color: #222222; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;"><br /></span></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com0tag:blogger.com,1999:blog-4470837025519971449.post-70275752318866458122015-04-22T07:14:00.001-07:002016-04-16T10:45:36.141-07:00Geocoding and Reverse Geocoding in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="CENTER" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">While
developing the iOS applications developer uses the locations to
display on the map in their apps. So they have to understand the
process of the geocoding and reverse geocoding. So that they can
apply this effectively in their apps. This blog will provide the easy
understanding of the Geocoding and Reverse Geocoding.</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><b>Geocoding
–</b></span></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">
Geocoding is the process of converting address (New York, NY, USA)
into the geographical coordinates(40.7127837,-74.0059413). In the iOS
it is provided by the </span></span></span><span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">CLGeocoder</span></span></span></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">
class of </span></span></span><span style="color: #c41a16;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">CoreLocation
</span></span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">framework.</span></span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: #5c2699;">
</span><span style="color: #5c2699;"> <span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">CLGeocoder</span></span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">
*geocoder = [[</span></span></span></span><span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">CLGeocoder</span></span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">
</span></span></span></span><span style="color: #2e0d6e;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">alloc</span></span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">]</span></span></span></span><span style="color: #2e0d6e;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">init</span></span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">];</span></span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">[geocoder
</span></span></span><span style="color: #2e0d6e;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">geocodeAddressString</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">:addressString</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span><span style="color: #2e0d6e;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">completionHandler</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">:^(</span></span></span><span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">NSArray</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">*
placemarks, </span></span></span><span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">NSError</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">*
error)</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span>
</div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="color: #aa0d91;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> if</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">
([placemarks </span></span></span><span style="color: #2e0d6e;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">count</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">]></span></span></span><span style="color: #1c00cf;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">0</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">)</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> {</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> CLPlacemark</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">
*clPlace = [placemarks </span></span></span><span style="color: #2e0d6e;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">objectAtIndex</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">:</span></span></span><span style="color: #1c00cf;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">0</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> CLLocation</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">
*location = clPlace.</span></span></span><span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">location</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">;</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> }</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span>
</div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">}];</span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm; margin-left: 1.25cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">CLPlacemark
provides following properties through which we can get more details
of a location.</span></span></div>
<ul>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">name</span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">addressDictionary</span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">ISOcountryCode</span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">country</span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">postalCode</span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">administrativeArea
//<span style="color: #414141;"><span style="font-style: normal;">The state
or province associated with the placemark</span></span></span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">subAdministrativeArea
//<span style="color: #414141;"><span style="font-style: normal;">Additional
administrative area information for the placemark</span></span></span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">locality
//<span style="color: #414141;"><span style="font-style: normal;">city</span></span></span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">subLocality
//<span style="color: #414141;"><span style="font-style: normal;">Additional
city-level information for the placemark.</span></span></span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">thoroughfare</span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">subThoroughfare</span></span></div>
</li>
<li><div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">region</span></span></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
</div>
</li>
</ul>
<div align="LEFT" style="margin-bottom: 0cm;">
</div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br />
<div style="margin-bottom: 0cm; text-align: left;">
<div style="text-align: left;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><b>Reverse
Geocoding</b></span></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;"> -</span></span></span><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: x-small;"><span style="font-weight: normal;"> </span></span></span></span><span style="font-family: Arial;">Reverse
geocoding</span><span style="color: #222222; font-family: Arial;"> is the
process of converting geographic coordinates(40.7127837,-74.0059413) into
a human-readable address(New York, NY, USA). To get the address information iOS
provides </span><span style="color: #5c2699; font-family: Arial;">CLGeocoder </span><span style="font-family: Arial;">class</span><span style="color: #5c2699; font-family: Arial;"> </span><span style="font-family: Arial;">for above iOS 5 version. For iOS 5 and below iOS provides the </span><span style="color: #5c2699; font-family: Arial;">MKReverseGeocoder </span><span style="font-family: Arial;">class.</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>44</o:Words>
<o:Characters>252</o:Characters>
<o:Company>IBM</o:Company>
<o:Lines>2</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>295</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-IN</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:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
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-->
<div class="MsoNormal">
<br /></div>
<!--EndFragment--></div>
</div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<b><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-style: normal;">For
iOS 5 above</span></span></span></span></b></div>
<div align="LEFT" style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="font-style: normal;"> CLLocation</span></span><span style="color: black;"><span style="font-style: normal;">
*location = [[</span></span><span style="color: #5c2699;"><span style="font-style: normal;">CLLocation</span></span><span style="color: black;"><span style="font-style: normal;">
</span></span><span style="color: #2e0d6e;"><span style="font-style: normal;">alloc</span></span><span style="color: black;"><span style="font-style: normal;">]</span></span><span style="color: #2e0d6e;"><span style="font-style: normal;">initWithLatitude</span></span><span style="color: black;"><span style="font-style: normal;">:latCord
</span></span><span style="color: #2e0d6e;"><span style="font-style: normal;">longitude</span></span><span style="color: black;"><span style="font-style: normal;">:longCord];</span></span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;"><span style="font-style: normal;"><span style="font-weight: normal;"> CLGeocoder</span></span></span><span style="color: black;"><span style="font-style: normal;"><span style="font-weight: normal;">
*geocoder = [[</span></span></span><span style="color: #5c2699;"><span style="font-style: normal;"><span style="font-weight: normal;">CLGeocoder</span></span></span><span style="color: black;"><span style="font-style: normal;"><span style="font-weight: normal;">
</span></span></span><span style="color: #2e0d6e;"><span style="font-style: normal;"><span style="font-weight: normal;">alloc</span></span></span><span style="color: black;"><span style="font-style: normal;"><span style="font-weight: normal;">]
</span></span></span><span style="color: #2e0d6e;"><span style="font-style: normal;"><span style="font-weight: normal;">init</span></span></span><span style="color: black;"><span style="font-style: normal;"><span style="font-weight: normal;">];</span></span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> [geocoder
</span><span style="color: #2e0d6e;">reverseGeocodeLocation</span><span style="color: black;">:location
</span><span style="color: #2e0d6e;">completionHandler</span><span style="color: black;">:</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> ^(</span><span style="color: #5c2699;">NSArray</span><span style="color: black;">*
placemarks, </span><span style="color: #5c2699;">NSError</span><span style="color: black;">*
error)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> {</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;"> if</span><span style="color: black;">
([placemarks </span><span style="color: #2e0d6e;">count</span><span style="color: black;">]
> </span><span style="color: #1c00cf;">0</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> {</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;"> CLPlacemark</span><span style="color: black;">
*placeMark = [placemarks </span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">:</span><span style="color: #1c00cf;">0</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> }</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> }];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><b><span style="color: black;">Using
iOS 5 and below using </span><span style="color: #5c2699;">MKReverseGeocoder
</span><span style="color: black;">class.</span></b></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">MKReverseGeocoder</span><span style="color: black;">*
geocoder = [[</span><span style="color: #5c2699;">MKReverseGeocoder</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">initWithCoordinate</span><span style="color: black;">:location.</span><span style="color: #5c2699;">coordinate</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">geocoder.</span><span style="color: #5c2699;">delegate</span><span style="color: black;">
= </span><span style="color: #aa0d91;">self</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">[geocoder </span><span style="color: #2e0d6e;">start</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<br /></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)reverseGeocoder:(</span><span style="color: #5c2699;">MKReverseGeocoder</span><span style="color: black;">*)geocoder
didFindPlacemark:(</span><span style="color: #5c2699;">MKPlacemark</span><span style="color: black;">*)place</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="color: black;"></span><span style="color: black;"></span><span style="color: #2e0d6e;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> NSLog</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">(</span></span></span><span style="color: #c41a16;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">@"%@"</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">,place.</span></span></span><span style="color: #5c2699;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">addressDictionary</span></span></span><span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">);</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<br /></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)reverseGeocoder:(</span><span style="color: #5c2699;">MKReverseGeocoder</span><span style="color: black;">*)geocoder
didFailWithError:(</span><span style="color: #5c2699;">NSError</span><span style="font-size: small;">*)error<span style="font-family: "arial" , sans-serif;"> </span>{</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
</div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;"> NSLog</span><span style="color: black;">(</span><span style="color: #c41a16;">@"Error
occured"</span><span style="color: black;">);</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span>
</div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<br /></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><b>Using
Google API</b> – We can also reverse geocode using the google api. </span></span>
</div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: black;"></span><span style="color: #5c2699;"> NSString</span><span style="color: black;">
*requestUrl=[</span><span style="color: #5c2699;">NSString</span><span style="color: black;"> </span><span style="color: #2e0d6e;">stringWithFormat</span><span style="color: black;">:</span><span style="color: #c41a16;">@"http://maps.googleapis.com/maps/api/geocode/json? latlng=%f,%f&sensor=false"</span><span style="color: black;">,latCord,longCord];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">requestUrl =
[requestUrl </span><span style="color: #2e0d6e;">stringByReplacingOccurrencesOfString</span><span style="color: black;">:</span><span style="color: #c41a16;">@"
"</span><span style="color: black;"> </span><span style="color: #2e0d6e;">withString</span><span style="color: black;">:</span><span style="color: #c41a16;">@"%20"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSMutableURLRequest</span><span style="color: black;">
*request = [[[</span><span style="color: #5c2699;">NSMutableURLRequest</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">init</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">autorelease</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">[request
</span><span style="color: #2e0d6e;">setTimeoutInterval</span><span style="color: black;">:</span><span style="color: #1c00cf;">60</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">[request </span><span style="color: #2e0d6e;">setURL</span><span style="color: black;">:[</span><span style="color: #5c2699;">NSURL</span><span style="color: black;">
</span><span style="color: #2e0d6e;">URLWithString</span><span style="color: black;">:requestUrl]];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">[request
</span><span style="color: #2e0d6e;">setHTTPMethod</span><span style="color: black;">:</span><span style="color: #c41a16;">@"GET"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">[request
</span><span style="color: #2e0d6e;">addValue</span><span style="color: black;">:</span><span style="color: #c41a16;">@"application/JSON"</span><span style="color: black;">
</span><span style="color: #2e0d6e;">forHTTPHeaderField</span><span style="color: black;">:</span><span style="color: #c41a16;">@"Content-Type"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSURLResponse</span><span style="color: black;">*
response = </span><span style="color: #aa0d91;">nil</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSError</span><span style="color: black;">*
error = </span><span style="color: #aa0d91;">nil</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSString</span><span style="color: black;">
*responseString = </span><span style="color: #aa0d91;">nil</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSData</span><span style="color: black;">
*result = [</span><span style="color: #5c2699;">NSURLConnection</span><span style="color: black;">
</span><span style="color: #2e0d6e;">sendSynchronousRequest</span><span style="color: black;">:request
</span><span style="color: #2e0d6e;">returningResponse</span><span style="color: black;">:&response
</span><span style="color: #2e0d6e;">error</span><span style="color: black;">:&error];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">if</span><span style="color: black;">
(error)</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;"> NSLog</span><span style="color: black;">(</span><span style="color: #c41a16;">@"Error
occured"</span><span style="color: black;">);</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
</span>
</div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">}</span><span style="color: #aa0d91;">else</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;"> NSMutableDictionary</span><span style="color: black;">
*dicResult = [</span><span style="color: #5c2699;">NSJSONSerialization</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;"> JSONObjectWithData</span><span style="color: black;">:result</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;"> options</span><span style="color: black;">:
</span><span style="color: #2e0d6e;">NSJSONReadingMutableContainers</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;"> error</span><span style="color: black;">:
&error];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;"> if</span><span style="color: black;">
([[dicResult </span><span style="color: #2e0d6e;">objectForKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"status"</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">isEqualToString</span><span style="color: black;">:</span><span style="color: #c41a16;">@"OK"</span><span style="color: black;">])</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> {</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;"> NSArray</span><span style="color: black;">
*arrayResult = [dicResult </span><span style="color: #2e0d6e;">objectForKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"results"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"></span><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;"> if</span><span style="color: black;">
([arrayResult </span><span style="color: #2e0d6e;">count</span><span style="color: black;">]></span><span style="color: #1c00cf;">0</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> {</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"><span style="color: black;"></span><span style="color: #2e0d6e;"> NSLog</span><span style="color: black;">(</span><span style="color: #c41a16;">@"%@"</span><span style="color: black;">,[arrayResult
</span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">:</span><span style="color: #1c00cf;">0</span><span style="color: black;">]);</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> }</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;"><span style="font-family: "arial" , sans-serif;"><span style="font-size: small;"> } </span></span></span>
</div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<span style="color: black;">
<span style="font-family: "arial" , sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
<br /></div>
<div style="margin-bottom: 0cm; margin-left: 1.25cm;">
</div>
<div style="margin-bottom: 0cm;">
<span style="background-color: white;"><span style="font-family: "arial" , sans-serif;">H</span></span><span style="background-color: white; color: #222222; font-family: "open sans" , sans-serif; font-size: 16px; line-height: 25.8799991607666px;">ere is <a href="https://github.com/pradeep7may/Location-Library.git" style="color: #888888; text-decoration: none;" target="_blank"><span style="color: blue;">sample project</span></a></span><span style="background-color: white; color: #222222; font-family: "open sans" , sans-serif; font-size: 16px; line-height: 25.8799991607666px;"> with all of the code from the above tutorial.</span></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com0tag:blogger.com,1999:blog-4470837025519971449.post-17269273855854814252015-04-17T05:56:00.003-07:002015-04-17T06:46:18.844-07:00MP4 Conversion and Video Merging in iOS<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="CENTER" style="margin-bottom: 0cm;">
<br /></div>
<h2 style="margin-bottom: 0cm; text-align: left; text-decoration: none;">
<span style="font-family: Arial, sans-serif; font-size: large;"><b>MP4
Conversion</b></span></h2>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-weight: normal;">Sometimes
we need to develop applications both for android and iOS that uses
the videos captured from the devices.By default iOS saves the video
in .mov format which can not be played on the android devices.To make
the iOS videos compatible for all devices(android and iOS) we use a
common video format and that is .mp4. Now we can achieve this by
using </span><span style="color: #c41a16;"><span style="font-weight: normal;">AVFoundation
framework</span></span><span style="color: black;"><span style="font-weight: normal;">.
This blog will provide the steps to convert video in mp4 format. </span></span></span></span>
</div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
Create the asset url with the video file </span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">AVURLAsset</span><span style="color: black;">
*avAsset = [</span><span style="color: #5c2699;">AVURLAsset</span><span style="color: black;">
</span><span style="color: #2e0d6e;">URLAssetWithURL</span><span style="color: black;">:videoURL
</span><span style="color: #2e0d6e;">options</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSArray</span><span style="color: black;">
*compatiblePresets = [</span><span style="color: #5c2699;">AVAssetExportSession</span><span style="color: black;">
</span><span style="color: #2e0d6e;">exportPresetsCompatibleWithAsset</span><span style="color: black;">:avAsset];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
Check if video is supported for conversion or not</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">if</span><span style="color: black;">
([compatiblePresets </span><span style="color: #2e0d6e;">containsObject</span><span style="color: black;">:</span><span style="color: #5c2699;">AVAssetExportPresetLowQuality</span><span style="color: black;">])</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
Export session</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Arial, sans-serif;"> </span><span style="color: #5c2699; font-family: Arial, sans-serif;">AVAssetExportSession</span><span style="color: black; font-family: Arial, sans-serif;">
*exportSession = [[</span><span style="color: #5c2699; font-family: Arial, sans-serif;">AVAssetExportSession</span><span style="color: black; font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">alloc</span><span style="color: black; font-family: Arial, sans-serif;">]</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">initWithAsset</span><span style="color: black; font-family: Arial, sans-serif;">:avAsset
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">presetName</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #5c2699; font-family: Arial, sans-serif;">AVAssetExportPresetLowQuality</span><span style="color: black; font-family: Arial, sans-serif;">];</span><br />
<span style="color: black; font-family: Arial, sans-serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Creating
temp path to save the converted video</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;"> NSString</span><span style="color: black;">*
documentsDirectory= [</span><span style="color: #2e0d6e;">NSSearchPathForDirectoriesInDomains</span><span style="color: black;">(</span><span style="color: #2e0d6e;">NSDocumentDirectory</span><span style="color: black;">,
</span><span style="color: #2e0d6e;">NSUserDomainMask</span><span style="color: black;">,
</span><span style="color: #aa0d91;">YES</span><span style="color: black;">)
</span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">:</span><span style="color: #1c00cf;">0</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;"> NSString</span><span style="color: black;">*
myDocumentPath= [documentsDirectory
</span><span style="color: #2e0d6e;">stringByAppendingPathComponent</span><span style="color: black;">:</span><span style="color: #c41a16;">@"temp.mp4"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;"> NSURL</span><span style="color: black;">
*url = [[</span><span style="color: #5c2699;">NSURL</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">initFileURLWithPath</span><span style="color: black;">:myDocumentPath];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Check
if the file already exists then remove the previous file</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;"> if</span><span style="color: black;">
([[</span><span style="color: #5c2699;">NSFileManager</span><span style="color: black;">
</span><span style="color: #2e0d6e;">defaultManager</span><span style="color: black;">]</span><span style="color: #2e0d6e;">fileExistsAtPath</span><span style="color: black;">:myDocumentPath])</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"> {</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"> [[</span><span style="color: #5c2699;">NSFileManager</span><span style="color: black;">
</span><span style="color: #2e0d6e;">defaultManager</span><span style="color: black;">]</span><span style="color: #2e0d6e;">removeItemAtPath</span><span style="color: black;">:myDocumentPath
</span><span style="color: #2e0d6e;">error</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"> }</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">exportSession.</span><span style="color: #5c2699;">outputURL</span><span style="color: black;">
= url;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//set
the output file format if you want to make it in other file format
(ex .3gp)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">exportSession.</span><span style="color: #5c2699;">outputFileType</span><span style="color: black;">
= </span><span style="color: #5c2699;">AVFileTypeMPEG4</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">exportSession.</span><span style="color: #5c2699;">shouldOptimizeForNetworkUse</span><span style="color: black;">
= </span><span style="color: #aa0d91;">YES</span><span style="color: black;">;</span></span></span><br />
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[exportSession
</span><span style="color: #2e0d6e;">exportAsynchronouslyWithCompletionHandler</span><span style="color: black;">:^{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">switch</span><span style="color: black;">
([exportSession </span><span style="color: #2e0d6e;">status</span><span style="color: black;">])</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">AVAssetExportSessionStatusFailed</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSLog</span><span style="color: black; font-family: Arial, sans-serif;">(</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Export
session failed"</span><span style="color: black; font-family: Arial, sans-serif;">);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">AVAssetExportSessionStatusCancelled</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSLog</span><span style="color: black; font-family: Arial, sans-serif;">(</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Export
canceled"</span><span style="color: black; font-family: Arial, sans-serif;">);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">AVAssetExportSessionStatusCompleted</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #007400; font-family: Arial, sans-serif;">//Video
conversion finished</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSLog</span><span style="color: black; font-family: Arial, sans-serif;">(</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Successful!"</span><span style="color: black; font-family: Arial, sans-serif;">);</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">default</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">else</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSLog</span><span style="font-family: Arial, sans-serif;">(</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Video
file not supported!"</span><span style="font-family: Arial, sans-serif;">);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<h2 style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"><span style="font-family: Arial, sans-serif; font-size: large;"><b>Videos
Merging(Adding two videos)</b></span></span></h2>
<div>
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;">While
developing iOS applications some times we required a functionality
where we have to merge small video clips in one large video file. Now
this we can achieve through iOS </span><span style="color: #c41a16;">AVFoundation
framework</span><span style="color: black;">. </span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
the AVMutable composition to add tracks</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">AVMutableComposition</span><span style="color: black;">*
composition = [[</span><span style="color: #5c2699;">AVMutableComposition</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">init</span><span style="color: black;">];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
assets url for first video</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">AVURLAsset</span><span style="color: black;">*
video1 = [[</span><span style="color: #5c2699;">AVURLAsset</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">initWithURL</span><span style="color: black;">:[</span><span style="color: #5c2699;">NSURL</span><span style="color: black;">
</span><span style="color: #2e0d6e;">fileURLWithPath</span><span style="color: black;">:path1]</span><span style="color: #2e0d6e;">options</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
assets url for second video</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">AVURLAsset</span><span style="color: black;">*
video2 = [[</span><span style="color: #5c2699;">AVURLAsset</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">initWithURL</span><span style="color: black;">:[</span><span style="color: #5c2699;">NSURL</span><span style="color: black;">
</span><span style="color: #2e0d6e;">fileURLWithPath</span><span style="color: black;">:path2]</span><span style="color: #2e0d6e;">options</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Create
the mutable composition track with video media type. You can also
create the tracks depending on your need if you want to merge audio
files and other stuffs.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">AVMutableCompositionTrack</span><span style="color: black;">*
composedTrack = [composition
</span><span style="color: #2e0d6e;">addMutableTrackWithMediaType</span><span style="color: black;">:</span><span style="color: #5c2699;">AVMediaTypeVideo</span><span style="color: black;">
</span><span style="color: #2e0d6e;">preferredTrackID</span><span style="color: black;">:</span><span style="color: #2e0d6e;">kCMPersistentTrackID_Invalid</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Set
the video time ranges of both the videos in composition</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[composedTrack
</span><span style="color: #2e0d6e;">insertTimeRange</span><span style="color: black;">:</span><span style="color: #2e0d6e;">CMTimeRangeMake</span><span style="color: black;">(</span><span style="color: #5c2699;">kCMTimeZero</span><span style="color: black;">,
video1.</span><span style="color: #5c2699;">duration</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">ofTrack</span><span style="color: black;">:[[video1
</span><span style="color: #2e0d6e;">tracksWithMediaType</span><span style="color: black;">:</span><span style="color: #5c2699;">AVMediaTypeVideo</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">:</span><span style="color: #1c00cf;">0</span><span style="color: black;">]</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">atTime</span><span style="color: black;">:</span><span style="color: #5c2699;">kCMTimeZero</span><span style="color: black;">
</span><span style="color: #2e0d6e;">error</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[composedTrack
</span><span style="color: #2e0d6e;">insertTimeRange</span><span style="color: black;">:</span><span style="color: #2e0d6e;">CMTimeRangeMake</span><span style="color: black;">(</span><span style="color: #5c2699;">kCMTimeZero</span><span style="color: black;">,
video2.</span><span style="color: #5c2699;">duration</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">ofTrack</span><span style="color: black;">:[[video2
</span><span style="color: #2e0d6e;">tracksWithMediaType</span><span style="color: black;">:</span><span style="color: #5c2699;">AVMediaTypeVideo</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">:</span><span style="color: #1c00cf;">0</span><span style="color: black;">]</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">atTime</span><span style="color: black;">:video1.</span><span style="color: #5c2699;">duration</span><span style="color: black;">
</span><span style="color: #2e0d6e;">error</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
Create a temp path to save the video in the documents dir.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSString</span><span style="color: black;">*
documentsDirectory=
[</span><span style="color: #2e0d6e;">NSSearchPathForDirectoriesInDomains</span><span style="color: black;">(</span><span style="color: #2e0d6e;">NSDocumentDirectory</span><span style="color: black;">,
</span><span style="color: #2e0d6e;">NSUserDomainMask</span><span style="color: black;">,
</span><span style="color: #aa0d91;">YES</span><span style="color: black;">)
</span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">:</span><span style="color: #1c00cf;">0</span><span style="color: black;">];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSString</span><span style="color: black;">*
myDocumentPath= [documentsDirectory
</span><span style="color: #2e0d6e;">stringByAppendingPathComponent</span><span style="color: black;">:</span><span style="color: #c41a16;">@"merge_video.mp4"</span><span style="color: black;">];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSURL</span><span style="color: black;">
*url = [[</span><span style="color: #5c2699;">NSURL</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">initFileURLWithPath</span><span style="color: black;">:
myDocumentPath];</span></span></span><br />
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//Check
if the file exists then delete the old file to save the merged video
file.</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #aa0d91;">if</span><span style="color: black;">([[</span><span style="color: #5c2699;">NSFileManager</span><span style="color: black;">
</span><span style="color: #2e0d6e;">defaultManager</span><span style="color: black;">]</span><span style="color: #2e0d6e;">fileExistsAtPath</span><span style="color: black;">:myDocumentPath])</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif; font-size: small;">[[</span><span style="color: #5c2699; font-family: Arial, sans-serif;">NSFileManager</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">defaultManager</span><span style="color: black; font-family: Arial, sans-serif;">]</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">removeItemAtPath</span><span style="color: black; font-family: Arial, sans-serif;">:myDocumentPath
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">error</span><span style="color: black; font-family: Arial, sans-serif;">:</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}</span></span></span><br />
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #007400;">//
Create the export session to merge and save the video </span></span></span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">AVAssetExportSession</span><span style="color: black;">*exporter
= [[</span><span style="color: #5c2699;">AVAssetExportSession</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">initWithAsset</span><span style="color: black;">:composition
</span><span style="color: #2e0d6e;">presetName</span><span style="color: black;">:</span><span style="color: #5c2699;">AVAssetExportPresetHighestQuality</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">exporter.</span><span style="color: #5c2699;">outputURL</span><span style="color: black;">=url;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">exporter.</span><span style="color: #5c2699;">outputFileType</span><span style="color: black;">=</span><span style="color: #c41a16;">@"com.apple.quicktime-movie"</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">exporter.</span><span style="color: #5c2699;">shouldOptimizeForNetworkUse</span><span style="color: black;">=</span><span style="color: #aa0d91;">YES</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> <span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[exporter
</span><span style="color: #2e0d6e;">exportAsynchronouslyWithCompletionHandler</span><span style="color: black;">:^{</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">switch</span><span style="color: black; font-family: Arial, sans-serif;">([exporter
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">status</span><span style="color: black; font-family: Arial, sans-serif;">])</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">AVAssetExportSessionStatusFailed</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSLog</span><span style="color: black; font-family: Arial, sans-serif;">(</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Failed
to export video"</span><span style="color: black; font-family: Arial, sans-serif;">);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">AVAssetExportSessionStatusCancelled</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSLog</span><span style="color: black; font-family: Arial, sans-serif;">(</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"export
cancelled"</span><span style="color: black; font-family: Arial, sans-serif;">);</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">case</span><span style="color: black; font-family: Arial, sans-serif;">
</span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">AVAssetExportSessionStatusCompleted</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #007400; font-family: Arial, sans-serif;">//Here
you go you have got the merged video :)</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #2e0d6e; font-family: Arial, sans-serif;">NSLog</span><span style="color: black; font-family: Arial, sans-serif;">(</span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"Merging
completed"</span><span style="color: black; font-family: Arial, sans-serif;">);</span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">default</span><span style="color: black; font-family: Arial, sans-serif;">:</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"></span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="color: #aa0d91; font-family: Arial, sans-serif;">break</span><span style="color: black; font-family: Arial, sans-serif;">;</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;"> </span><span style="font-family: Arial, sans-serif;">}</span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">}];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<br />
<br />
<h4 style="margin-bottom: 0cm; text-align: left;">
<span style="color: black;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;">For
Mixing audio and video </span></span></span></h4>
<div style="margin-bottom: 0cm;">
<br />
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="color: #007400;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">//From above code to mix
a audio with video simply create a mutable composition of audio track
and insert it in the video time range.</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="color: #007400;"><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><br /></span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSArray</span><span style="color: black;">
*pathComponents = [NSArray arrayWithObjects:</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, </span><span style="color: #aa0d91;">YES</span><span style="color: black;">)
lastObject],</span></span></span><span style="color: #c41a16; font-family: Arial, sans-serif;">@"MyAudio.m4a"</span><span style="color: black; font-family: Arial, sans-serif;">,</span><span style="color: #aa0d91; font-family: Arial, sans-serif;">nil</span><span style="color: black; font-family: Arial, sans-serif;">];</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Arial, sans-serif;"><br /></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">NSURL</span><span style="color: black;">
*outputFileURL = [NSURL fileURLWithPathComponents:pathComponents];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">AVAsset</span><span style="color: black;">
*audioAsset = [AVAsset assetWithURL:outputFileURL];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Arial, sans-serif;">//Create mutable composition of audio type</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"> </span>
</div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #5c2699;">AVMutableCompositionTrack</span><span style="color: black;">
*audioTrack = [</span><span style="color: #5c2699;">composition </span><span style="color: black;">addMutableTrackWithMediaType:</span><span style="color: #5c2699;">AVMediaTypeAudio </span><span style="color: black;">preferredTrackID:</span><span style="color: #2e0d6e;">kCMPersistentTrackID_Invalid</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: small;">[audioTrack
</span><span style="color: #2e0d6e;">insertTimeRange</span><span style="color: black;">:</span><span style="color: #2e0d6e;">CMTimeRangeMake</span><span style="color: black;">(</span><span style="color: #5c2699;">kCMTimeZero</span><span style="color: black;">,firstAsset.</span><span style="color: #5c2699;">duration</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="color: #2e0d6e;">ofTrack</span><span style="color: black;">:[[audioAsset
</span><span style="color: #2e0d6e;">tracksWithMediaType</span><span style="color: black;">:</span><span style="color: #5c2699;">AVMediaTypeAudio</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">:</span><span style="color: #1c00cf;">0</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">atTime</span><span style="color: black;">:</span><span style="color: #5c2699;">kCMTimeZero</span><span style="color: black;">
</span><span style="color: #2e0d6e;">error</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span></span></div>
<br />
<div style="margin-bottom: 0cm;">
<br />
</div>
<br /></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="background-color: white; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;">Here is <a href="https://github.com/pradeep7may/VideoConversionAndMerge.git" target="_blank"><span style="color: blue;">sample project</span></a></span><span style="background-color: white; font-family: 'Open Sans', sans-serif; font-size: 16px; line-height: 25.8799991607666px;"> with all of the code from the above tutorial.</span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com42tag:blogger.com,1999:blog-4470837025519971449.post-69299264953868346582015-04-06T03:24:00.000-07:002015-04-06T23:26:46.209-07:00Network Link Conditioner <div dir="ltr" style="text-align: left;" trbidi="on">
<div align="CENTER" style="margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">It
is a common problem of the developers that face issues while checking
the app on the different networks. Could they arrange each network at
one place ? Answer is simply No. Now they can check their application behaviour on different networks while developing the app. This is provided by the Network link Conditioner. <br /><br />Network Link
conditioner can be used on mac and also on iOS devices. Now
developers can test the app in different network conditions on
simulator by enabling it on mac. <br /></span><span style="font-family: Arial, sans-serif;"><b>For
Mac Setup</b></span><span style="font-family: Arial, sans-serif;"> – You can
enable it from the </span><span style="font-family: Arial, sans-serif;"><span style="font-size: small;"><span style="font-style: normal;"><span style="font-weight: normal;">"Hardware
IO Tools for Xcode" package. If you do not have installed it now
you can download it from <a href="https://developer.apple.com/downloads/index.action?q=Network%20Link%20Conditioner" target="_blank"><span style="color: blue;">Apple Developer Download page.</span></a></span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif; text-align: left;">If you have not installed it previously. Then install it from from above mentioned link and after that go to your system preferences and there you will find it.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif; text-align: left;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUm3BwlN9d2hCXekf2ORkfUBQ8UxYRVz6_OPvulEMR-8B0hNbOxnwwUIKuJdwHHB1aV96KazPjB7-zesxFn5ZkHnix-jWx0YNU9psEw6fOA5axtQJFci3x2lSJ8PKMi4qEznQKoFD6o7cd/s1600/Screen+Shot+2015-04-07+at+11.49.58+am.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUm3BwlN9d2hCXekf2ORkfUBQ8UxYRVz6_OPvulEMR-8B0hNbOxnwwUIKuJdwHHB1aV96KazPjB7-zesxFn5ZkHnix-jWx0YNU9psEw6fOA5axtQJFci3x2lSJ8PKMi4qEznQKoFD6o7cd/s1600/Screen+Shot+2015-04-07+at+11.49.58+am.png" height="295" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQzZ_0RZsNKlcC7fo9a_A9Tw2ifGv8xKdle5Igk785J7R1etJT_uSqUqKXfcomQOFuNdhzzRZ-ukJ1Ba1DC4MwISrivDk37P4lxwkgxK73jFY8iAOaekhsffoR-FZ6CxkcCXP63au7nPhs/s1600/Screen+Shot+2015-04-06+at+3.13.38+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQzZ_0RZsNKlcC7fo9a_A9Tw2ifGv8xKdle5Igk785J7R1etJT_uSqUqKXfcomQOFuNdhzzRZ-ukJ1Ba1DC4MwISrivDk37P4lxwkgxK73jFY8iAOaekhsffoR-FZ6CxkcCXP63au7nPhs/s1600/Screen+Shot+2015-04-06+at+3.13.38+pm.png" height="171" width="320" /></a></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">Network
Link Conditioner can be used with the pre defined profiles. There are
following profiles that will be available. You can also create your
custom profile for each network.</span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRC5L_FVxKdhOgXVRYZ45cTnkwjZtK6HO5iQlncSh9km4qLMd7gW9DwbBQ1IlRTQTg4bzjpXHMGO6YxUkeNqlxNe66PpBhuxJ-DP9fVkjv0FZW2o0Pws5O_n6eH2MskIAomGGhOoLjLmeC/s1600/Screen+Shot+2015-04-06+at+3.13.57+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRC5L_FVxKdhOgXVRYZ45cTnkwjZtK6HO5iQlncSh9km4qLMd7gW9DwbBQ1IlRTQTg4bzjpXHMGO6YxUkeNqlxNe66PpBhuxJ-DP9fVkjv0FZW2o0Pws5O_n6eH2MskIAomGGhOoLjLmeC/s1600/Screen+Shot+2015-04-06+at+3.13.57+pm.png" /></a></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">You can
also customize it and set the configuration according to your need.</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggP6wzma07KUuT4unFp2Ih9m6jMSVr5YwTOkKcZYaK2OxjJAt9ncm2vKdV5qfXR1sakdBoUKlhClr4zH-wpNUTFt46Wj3XzmnHUTWtIVEhZQj84m3ZCt__6CG-3l1rPpt7Q9K_5rZ1wg4w/s1600/Screen+Shot+2015-04-06+at+3.16.09+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggP6wzma07KUuT4unFp2Ih9m6jMSVr5YwTOkKcZYaK2OxjJAt9ncm2vKdV5qfXR1sakdBoUKlhClr4zH-wpNUTFt46Wj3XzmnHUTWtIVEhZQj84m3ZCt__6CG-3l1rPpt7Q9K_5rZ1wg4w/s1600/Screen+Shot+2015-04-06+at+3.16.09+pm.png" height="191" width="320" /></a></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><br /><br />Now
you are ready to test your app with different network. Just enable it
and enjoy developing app. :)</span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;"><b>For
iOS Devices</b> – For iOS 6 and above network link conditioner is
available in the devices themselves. You have to just enable it to
check the app on different network. </span>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">To
enable it you have to follow following steps. </span>
</div>
<div style="margin-bottom: 0cm;">
<br /></div>
<br />
<ol>
<li><div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">Setup
your device for development mode by enabling it through Xcode.</span></div>
</li>
<li><div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">Now go
to the settings on iOS Device. </span>
</div>
</li>
<li><div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">Navigate
to the developer section and select it.</span></div>
</li>
<li><div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">Now
you will find the Network Link Conditioner.</span></div>
</li>
<li><div style="margin-bottom: 0cm;">
<span style="font-family: Arial, sans-serif;">Enable
it and set you configuration according to your need.</span></div>
</li>
</ol>
<div>
<span style="font-family: Arial, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLZC_DZQAK7-0W1HrNinLuWobVlckguEoQ2A-zSxEytrB1Y3OP30h2Rk6x9yxA5TI6-vy22Xft61Nc_dBiTgmRqdVKHeGp6pbEoRc_7-YVY8BNWxbLAmNC0GewwaINY3-XWwL5BLSN8mX7/s1600/IMG_2911.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLZC_DZQAK7-0W1HrNinLuWobVlckguEoQ2A-zSxEytrB1Y3OP30h2Rk6x9yxA5TI6-vy22Xft61Nc_dBiTgmRqdVKHeGp6pbEoRc_7-YVY8BNWxbLAmNC0GewwaINY3-XWwL5BLSN8mX7/s1600/IMG_2911.PNG" height="320" width="180" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj94uBUNOl5o2bvNNmUvSuBuS1MlyKCDrKo7lPTxO2nVvJC8nNpgkoAneqcbiu_bM9I9CfL9ny8ovgHdIgKhjMHNJZjFrlbB4-BfgVAVXGlNcT2neGXHV1WRnKCRwd_xJhub6BakVtSiuXP/s1600/IMG_2912.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj94uBUNOl5o2bvNNmUvSuBuS1MlyKCDrKo7lPTxO2nVvJC8nNpgkoAneqcbiu_bM9I9CfL9ny8ovgHdIgKhjMHNJZjFrlbB4-BfgVAVXGlNcT2neGXHV1WRnKCRwd_xJhub6BakVtSiuXP/s1600/IMG_2912.PNG" height="320" width="180" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrFid54hMyT3y1ffamXye9uGYSBFd4ih5Qv3McmRe4B3Rbj2-C7T7zm_M7FjW4f_YPKy1WL20xEq0vRGmOVV9nXvcSNVCLYGAOAXD6U9ZfakvNl9WpTVeXuZPIOPdNFaUgX36J0jTII9uN/s1600/IMG_2913.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrFid54hMyT3y1ffamXye9uGYSBFd4ih5Qv3McmRe4B3Rbj2-C7T7zm_M7FjW4f_YPKy1WL20xEq0vRGmOVV9nXvcSNVCLYGAOAXD6U9ZfakvNl9WpTVeXuZPIOPdNFaUgX36J0jTII9uN/s1600/IMG_2913.PNG" height="320" width="180" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Don't forget to turn it off after testing. </div>
<div>
<span style="font-family: Arial, sans-serif;"><br /></span></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com7tag:blogger.com,1999:blog-4470837025519971449.post-91731565250460643552015-04-03T04:30:00.001-07:002015-04-08T01:51:39.067-07:00Amazon AWS S3 Integration in iOS App<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div align="CENTER" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif; font-size: small;">Sometime
uploading the large files to the local server and then upload it to
the Amazon S3 server takes time. But now it is a easy task to upload
the large files directly to the Amazon S3 server and keeping track
of the uploaded files on your local server. </span><br />
<span style="font-family: Times, Times New Roman, serif;"><span style="font-size: small;"><br /></span><span style="font-size: small;">This blog
provides the easy steps to integrate and upload the data on the S3
server from the iOS App.</span></span><br />
<span style="font-family: Times, Times New Roman, serif;"><span style="font-size: small;"><br /></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="font-size: small;"><b>Sign up to
get the Amazon S3 </b></span><span style="font-size: small;">–
You should have AWS account to use the Amazon S3. If not, you can
create this by using the following link. <a href="http://aws.amazon.com/s3" target="_blank"><span style="color: blue;">http://aws.amazon.com/s3</span></a></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="font-size: small;"><b>Creating a
bucket – </b></span><span style="font-size: small;">Once
you have created a account and get the AWS credentials then you need
to create the bucket. Bucket is the storage where you will store your
files. You can create a bucket by using the following link.</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><a href="http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html" name="http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html"><span style="color: #3333ff;"><span style="text-decoration: none;">http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html
</span></span></a>
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"><span style="font-size: small;"><b>Integrating
the AWS iOS SDK –</b></span></span><span style="color: black;"><span style="font-size: small;">
</span></span>
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;">1) Download
the SDK from <a href="http://aws.amazon.com/mobile/sdk/" rel="nofollow" target="_blank"><span style="color: blue;">https://aws.amazon.com/mobile/sdk/</span></a> <span style="color: #0000cc;"><span style="font-size: 10pt;">.</span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">2)
Add the followings framework located in the third party SDK. <br /> </span>
</span></div>
<ul style="text-align: left;">
<li><div align="LEFT">
<span style="color: #333333;"><span style="font-size: 11pt;"><span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;">Bolts.framework
(If your application uses the Facebook SDK, you won't need this
framework, as it's already included with the Facebook SDK.)</span></span></span></span></div>
</li>
<li><div align="LEFT">
<span style="color: #333333;"><span style="font-size: 11pt;"><span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;">FMDB.framework</span></span></span></span></div>
</li>
<li><div align="LEFT">
<span style="color: #333333;"><span style="font-size: 11pt;"><span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;">SystemConfiguration.framework</span></span></span></span></div>
</li>
<li><span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;">Mantle.framework</span></span></li>
<li><span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;">Reachability.framework</span></span></li>
<li><span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;">TMCache.framework</span></span></li>
<li><span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;">UICKeyChainStore.framework</span></span></li>
<li><span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;">XMLDictionary.framework</span></span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaClrzJ7ihiXj9Oj6vva1W0BtHdZASa3XMnIzD1GMM7YxdMYjyXqfKoybiqGmNyranTHVLzrX5yyh0f9ttvD5mvgsbbYXpIiIPpnqDY5MdokVTro2aASRlOatBV3y7knqMPl-I5C6fK6uO/s1600/Screen+Shot+2015-04-03+at+1.35.28+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Times, Times New Roman, serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaClrzJ7ihiXj9Oj6vva1W0BtHdZASa3XMnIzD1GMM7YxdMYjyXqfKoybiqGmNyranTHVLzrX5yyh0f9ttvD5mvgsbbYXpIiIPpnqDY5MdokVTro2aASRlOatBV3y7knqMPl-I5C6fK6uO/s1600/Screen+Shot+2015-04-03+at+1.35.28+pm.png" /></span></a></div>
<div>
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">3)
</span><span style="color: #333333;">Drag
and drop the following JSON files, located in t</span><span style="color: #333333;">he
</span><code><span style="color: #333333;"><span style="font-size: small;"><i>service-definitions</i></span></span></code><code><span style="color: #333333;"><span style="font-size: small;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">
</span></span></span></code><span style="color: #333333;">directo</span><span style="color: #333333;">ry,
into your</span><span style="color: #333333;"><span style="font-size: 10pt;">
</span></span><span style="color: #333333;">project.</span><span style="color: black;"><span style="font-size: small;"><br /></span></span><span style="color: black;"> </span></span></div>
<div style="text-align: left;">
</div>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">cognito-sync-2014-06-30.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">dynamodb-2012-08-10.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">ec2-2014-06-15.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">elasticloadbalancing-2012-06-01.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">email-2010-12-01.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">kinesis-2013-12-02.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">mobileanalytics-2014-06-30.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">monitoring-2010-08-01.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">s3-2006-03-01.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">sdb-2009-04-15.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">sns-2010-03-31.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">sqs-2012-11-05.json</span></li>
</ul>
<ul>
<li><span style="font-family: Times, Times New Roman, serif;">sts-2011-06-15.json</span></li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;">autoscaling-2011-01-01.json</span></div>
<div style="margin-bottom: 0cm;">
</div>
</li>
</ul>
<div style="margin-bottom: 0cm;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo2a3KD9sFvRDIbMeplrweh7HG2i-NkN84k_67XmtjnXSO3FhOeWkxdhI4P2vEa9V4VSgWQU7BmbuUllKQI0Noh6u2GYod5Qq4fudQa1MhCCcYjLIh8rzE9KG4b6MhEG30TkaebQxIpTw1/s1600/Screen+Shot+2015-04-03+at+1.35.41+pm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Times, Times New Roman, serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo2a3KD9sFvRDIbMeplrweh7HG2i-NkN84k_67XmtjnXSO3FhOeWkxdhI4P2vEa9V4VSgWQU7BmbuUllKQI0Noh6u2GYod5Qq4fudQa1MhCCcYjLIh8rzE9KG4b6MhEG30TkaebQxIpTw1/s1600/Screen+Shot+2015-04-03+at+1.35.41+pm.png" /></span></a></div>
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;">4) Add the following Libraries.</span></div>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;">libsqlite3.dylib</span></div>
</li>
<li><div style="margin-bottom: 0cm;">
<span style="color: #333333; font-family: Times, Times New Roman, serif;">libz.dylib</span></div>
</li>
</ul>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><b>Creating Amazon Cognito Identity –
</b>Next step is to create the
Amazon Cognito ID that will be used in uploading the files. You can
create it from the following link -<a href="http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html" target="_blank"><span style="color: blue;">http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html</span></a></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><b>Uploading a File on Amazon S3 Server
</b>-</span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;">1)
Import the following header file in your class.</span><br />
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<div style="text-align: justify;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: #643820;"> #import
</span><span style="color: #c41a16;"><AWSiOSSDKv2/AWSCore.h></span></span></div>
</div>
<div style="margin-bottom: 0cm; text-align: left;">
<div style="text-align: justify;">
<span style="font-family: Times, Times New Roman, serif; font-size: small;"><span style="color: #c41a16;"></span><span style="color: #643820;"> #import
</span><span style="color: #c41a16;"><AWSiOSSDKv2/AWSS3TransferManager.h></span></span></div>
</div>
<div style="margin-bottom: 0cm; text-align: left;">
<div style="text-align: justify;">
<span style="color: #643820; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> #import
</span><span style="color: #c41a16;"><AWSiOSSDKv2/AWSCredentialsProvider.h></span></span></div>
</div>
<div style="margin-bottom: 0cm; text-align: left;">
<div style="text-align: justify;">
<span style="color: #643820; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> #import
</span><span style="color: #c41a16;"><AWSiOSSDKv2/S3.h></span></span></div>
</div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;">2)
Initialize
the configurati<span style="color: black;">on
in App Delegate's </span><span style="color: black;">application:didFinishLaunchingWithOptions.</span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif; font-size: small;"><span style="color: #333333;"> </span><span style="color: black;">
</span><span style="color: #5c2699;">AWSCognitoCredentialsProvider</span><span style="color: black;">
*credentialsProvider = [</span><span style="color: #5c2699;">AWSCognitoCredentialsProvider</span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: #2e0d6e;">credentialsWithRegionType</span><span style="color: black;">:</span><span style="color: #2e0d6e;">AWSRegionUSEast1</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: #2e0d6e;">identityPoolId</span><span style="color: black;">:</span><span style="color: #643820;"><i><b>PLACE_YOUR_COGNITO_POOL_ID_HERE</b></i></span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: #5c2699;">AWSServiceConfiguration</span><span style="color: black;">
*configuration = [</span><span style="color: #5c2699;">AWSServiceConfiguration</span><span style="color: black;">
</span><span style="color: #2e0d6e;">configurationWithRegion</span><span style="color: black;">:</span><span style="color: #2e0d6e;">AWSRegionUSWest2</span><span style="color: black;">
</span><span style="color: #2e0d6e;">credentialsProvider</span><span style="color: black;">:credentialsProvider];
</span></span>
</span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
</span>
</span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: #2e0d6e;">AWSServiceManager</span><span style="color: black;">.</span><span style="color: #2e0d6e;">defaultServiceManager</span><span style="color: black;">.</span><span style="color: #5c2699;">defaultServiceConfiguration</span><span style="color: black;">
= configuration;</span></span></span><br />
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif; font-size: x-small;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<div style="text-align: left;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif;"><b>Note- </b> *Place the specified region type where your bucket is located. I have
used AWSRegionUSEast1.</span></span></div>
<span style="font-family: Times, 'Times New Roman', serif;"> *Provide your
region name in 'AWSCognitoCredentialsProvider'
where your server has located.</span><span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"> </span></span><br />
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"> *Provide your region
name in 'AWSServiceConfiguration' where your bucket has located. </span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: Times, Times New Roman, serif;">3)
Call the AWS Service in your class.</span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"><b> </b></span><span style="color: #5c2699;">AWSS3TransferManager</span><span style="color: black;">
*transferManager = [</span><span style="color: #5c2699;">AWSS3TransferManager</span><span style="color: black;"><span style="font-size: small;">
</span></span><span style="color: #2e0d6e;">defaultS3TransferManager</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: #5c2699;">AWSS3TransferManagerUploadRequest</span><span style="color: black;">
*uploadRequest = [[</span><span style="color: #5c2699;">AWSS3TransferManagerUploadRequest</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">init</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
uploadRequest.</span><span style="color: #5c2699;">bucket</span><span style="color: black;">
= </span><span style="color: #643820;"><span style="font-size: small;"><i><b>PLACE_YOUR_BUCKET_NAME_HERE</b></i></span></span><span style="color: black;">;</span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
uploadRequest.</span><span style="color: #5c2699;">key</span><span style="color: black;">
= </span><span style="color: #643820;"><span style="font-size: small;"><i><b>NAME_OF_THE_FILE_BY_WHICH_IT_WILL_BE_SAVED</b></i></span></span><span style="color: black;">; </span><span style="color: #6aa84f;">//Use below function to get unique file name</span></span></div>
<div style="margin-bottom: 0cm; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
uploadRequest.</span><span style="color: #5c2699;">body</span><span style="color: black;">
= [</span><span style="color: #5c2699;">NSURL</span><span style="color: black;">
</span><span style="color: #2e0d6e;">fileURLWithPath</span><span style="color: black;">:</span><span style="color: #643820;"><span style="font-size: small;"><i><b>LOCAL_FILEPATH_OF_FILE_WHICH_WILL_UPLOAD</b></i></span></span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: #5c2699;">BFTask</span><span style="color: black;">
*task = [transferManager </span><span style="color: #2e0d6e;">upload</span><span style="color: black;">:uploadRequest];</span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;">
<span style="font-size: small;">[task
</span><span style="color: #2e0d6e;">continueWithBlock</span><span style="color: black;">:^</span><span style="color: #aa0d91;">id</span><span style="color: black;">(</span><span style="color: #5c2699;">BFTask</span><span style="color: black;">
*task)</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">{</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> //Handle the
response here</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;">
<span style="font-size: small;">}];</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><b>Note</b>–
If you want to access the image through URL then be sure that your
bucket is set to public permission otherwise you will get the
authentication error.</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<h3>
<span style="color: blue; font-family: Times, Times New Roman, serif;"><b><u>Sample
Code:</u></b></span></h3>
</div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*
To upload the file on S3 Server.</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*
</span><span style="color: #023d10;">@param</span><span style="color: #007400;">
bucketName bucket on which file to be uploaded</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*
</span><span style="color: #023d10;">@param</span><span style="color: #007400;">
filePath path of the file to be uploaded</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*
</span><span style="color: #023d10;">@param</span><span style="color: #007400;">
fileName fileName by which it will be saved on server</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*
</span><span style="color: #023d10;">@param</span><span style="color: #007400;">
responseBlock returns the response block containing result.If upload
is success then returns TRUE otherwise returns FALSE</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*/</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;">+
(<span style="color: #aa0d91;">void</span>)uploadFileToS3Bucket:(<span style="color: #5c2699;">NSString</span>*)bucketName
filePath:(<span style="color: #5c2699;">NSString</span>*)filePath
fileName:(<span style="color: #5c2699;">NSString</span>*)fileName
completionHandler:(<span style="color: #aa0d91;">void</span>(^)(<span style="color: #aa0d91;">BOOL</span>
result))responseBlock</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #5c2699;"> AWSS3TransferManager</span><span style="color: black;">
*transferManager = [</span><span style="color: #5c2699;">AWSS3TransferManager</span><span style="color: black;"> </span><span style="color: #2e0d6e;">defaultS3TransferManager</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #5c2699;"> AWSS3TransferManagerUploadRequest</span><span style="color: black;">
*uploadRequest = [[</span><span style="color: #5c2699;">AWSS3TransferManagerUploadRequest</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]</span><span style="color: #2e0d6e;">init</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> uploadRequest.</span><span style="color: #5c2699;">bucket</span><span style="color: black;">
= bucketName;</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> uploadRequest.</span><span style="color: #5c2699;">key</span><span style="color: black;">
= fileName;</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> uploadRequest.</span><span style="color: #5c2699;">body</span><span style="color: black;">
= [</span><span style="color: #5c2699;">NSURL</span><span style="color: black;">
</span><span style="color: #2e0d6e;">fileURLWithPath</span><span style="color: black;">:filePath];</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"> </span>
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #5c2699;"> BFTask</span><span style="color: black;">
*task = [transferManager </span><span style="color: #2e0d6e;">upload</span><span style="color: black;">:uploadRequest];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"> </span>
</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> [task
</span><span style="color: #2e0d6e;">continueWithBlock</span><span style="color: black;">:^</span><span style="color: #aa0d91;">id</span><span style="color: black;">(</span><span style="color: #5c2699;">BFTask</span><span style="color: black;">
*task)</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"> </span>
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> if</span><span style="color: black;">
(task.</span><span style="color: #5c2699;">error</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> if</span><span style="color: black;">
([task.</span><span style="color: #5c2699;">error</span><span style="color: black;">.</span><span style="color: #5c2699;">domain</span><span style="color: black;">
</span><span style="color: #2e0d6e;">isEqualToString</span><span style="color: black;">:</span><span style="color: #5c2699;">AWSS3TransferManagerErrorDomain</span><span style="color: black;">])</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> switch</span><span style="color: black;">
(task.</span><span style="color: #5c2699;">error</span><span style="color: black;">.</span><span style="color: #5c2699;">code</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> case</span><span style="color: black;">
</span><span style="color: #2e0d6e;">AWSS3TransferManagerErrorCancelled</span><span style="color: black;">:</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> responseBlock(</span><span style="color: #aa0d91;">FALSE</span><span style="color: black;">);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> break</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> case</span><span style="color: black;">
</span><span style="color: #2e0d6e;">AWSS3TransferManagerErrorPaused</span><span style="color: black;">:</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> responseBlock(</span><span style="color: #aa0d91;">FALSE</span><span style="color: black;">);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> break</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> default</span><span style="color: black;">:</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> responseBlock(</span><span style="color: #aa0d91;">FALSE</span><span style="color: black;">);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> break</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> }</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> }
</span><span style="color: #aa0d91;">else</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="color: #007400;"></span><span style="color: #2e0d6e;"> NSLog</span><span style="color: black;">(</span><span style="color: #c41a16;">@"Upload
failed: [%@]"</span><span style="color: black;">,
task.</span><span style="color: #5c2699;">error</span><span style="color: black;">);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> responseBlock(</span><span style="color: #aa0d91;">FALSE</span><span style="color: black;">);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> }</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> }</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"> </span>
</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> if</span><span style="color: black;">
(task.</span><span style="color: #5c2699;">result</span><span style="color: black;">)</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> {</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;"><span style="font-size: small;"> responseBlock(</span><span style="color: #aa0d91;">TRUE</span><span style="color: black;">);</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> }</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> return</span><span style="color: black;">
</span><span style="color: #aa0d91;">nil</span><span style="color: black;">;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, Times New Roman, serif; font-size: small;"> }];</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;">}</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;">/**</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: #007400;"> <span style="font-size: small;">*
Getting unique filename </span></span>
</span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*
</span><span style="color: #023d10;">@return</span><span style="color: #007400;">
returns the unique filename created</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: #007400; font-family: Times, Times New Roman, serif;"> <span style="font-size: small;">*/</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif; font-size: small;"><span style="color: black;">+
(</span><span style="color: #5c2699;">NSString</span><span style="color: black;">*)getUniqueFileName</span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;">{</span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #5c2699;"> NSString</span><span style="color: black;">
*fileName = [[[</span><span style="color: #5c2699;">NSProcessInfo</span><span style="color: black;">
</span><span style="color: #2e0d6e;">processInfo</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">globallyUniqueString</span><span style="color: black;">] </span><span style="color: #2e0d6e;">stringByAppendingString</span><span style="color: black;">:</span><span style="color: #c41a16;">@".png"</span><span style="color: black;">];</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #aa0d91;"> return</span><span style="color: black;">
fileName;</span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black; font-family: Times, Times New Roman, serif;">}</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<br /></div>
</div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com5tag:blogger.com,1999:blog-4470837025519971449.post-76213070871466638922015-04-02T02:27:00.002-07:002015-04-03T03:37:37.687-07:00Quick Reference to iOS NSDateFormats<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="font-weight: normal; margin-bottom: 0cm; text-align: left;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;"><br /></span></span></span></h2>
<h2 style="margin-bottom: 0cm; text-align: left;">
</h2>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">Generally
people don't remember the formats string while they use
NSDateFormatter. This reference will provide a easy to remember quick
guides. </span></span></span>
</div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<ul>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">y
= year</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">Y
= Year (<span style="font-style: normal;">This year designation is
used in ISO year-week calendar as defined by ISO 8601, but can be
used in non-Gregorian based calendar systems where week date
processing is desired. May not always be the same value as calendar
year.</span>)</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">Q
= quarter</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">M
= month</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">w
= week of year</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">W
= week of month</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">d
= day of the month</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">D
= day of year</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">E
= day of week</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">a
= period (AM or PM)</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">h
= hour (1-12)</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">H
= hour (0-23)</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">m
= minute</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">s
= second</span></span></span></div>
</li>
<li><div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">z
= zone</span></span></span></div>
</li>
</ul>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">Commonly
used NSDateFormat String -</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;">
</span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">@"E,
d M y" - Mon, 1 5 2015</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">@"EE,
dd MM yy" - Mon, 01 05 15</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">@"EEE,
ddd MMM yyy" - Mon, 001 May 2015</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">@"EEEE,
dddd MMMM yyyy - Monday, 0001 May 2015</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">@"dd-MM-yyyy" - 01-05- 2015</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">@"dd-MM-yyyy
HH:mm:ss" - 01-05- 2015 15:10:10</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;">@"dd-MM-yyyy
hh:mm:ss a" - 01-05- 2015 10:15:12 AM</span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times New Roman, serif;"><span style="font-size: small;"><span style="font-style: normal;"><span style="background: transparent;">@"EEE,
dd MMM yyyy HH:mm:ss Z" - </span></span><span style="font-style: normal;"><span style="background: transparent;">Mon,
06 Sep 2009 16:45:00 -0900</span></span></span></span></span></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<br />
<div style="margin-bottom: 0cm;">
<br /></div>
</div>
Pradeep Kumar Yadavhttp://www.blogger.com/profile/08465052117866647668noreply@blogger.com1