tag:blogger.com,1999:blog-32081989022850466212024-03-29T00:31:42.275-07:00iPhone/iPad Application DevelopmentThis blog contains information about the implementations for iPhone and iPad native application development.Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.comBlogger39125tag:blogger.com,1999:blog-3208198902285046621.post-42039284503034295992019-04-09T05:04:00.000-07:002019-04-09T05:51:53.501-07:00JMeter Vs Gatling Automation tools<div dir="ltr" style="text-align: left;" trbidi="on">
<style>
<!--table
{mso-displayed-decimal-separator:"\.";
mso-displayed-thousand-separator:"\,";}
@page
{margin:.75in .7in .75in .7in;
mso-header-margin:.3in;
mso-footer-margin:.3in;}
td
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:12.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:Calibri, sans-serif;
mso-font-charset:0;
mso-number-format:General;
text-align:general;
vertical-align:bottom;
border:none;
mso-background-source:auto;
mso-pattern:auto;
mso-protection:locked visible;
white-space:nowrap;
mso-rotate:0;}
.xl63
{font-size:18.0pt;}
.xl64
{color:white;
border:.5pt solid windowtext;
background:#0070C0;
mso-pattern:black none;
white-space:normal;}
.xl65
{color:gray;
border:.5pt solid windowtext;
white-space:normal;}
.xl66
{color:white;
text-align:center;
vertical-align:middle;
border:.5pt solid windowtext;
background:#0070C0;
mso-pattern:black none;
white-space:normal;}
.xl67
{color:gray;
text-align:center;
vertical-align:middle;
border:.5pt solid windowtext;
white-space:normal;}
.xl68
{text-align:center;
vertical-align:middle;}
-->
</style>
<br />
<h2 style="text-align: left;">
<span style="color: blue;">
JMeter Vs Gatling Automation tools</span></h2>
<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 537px;">
<!--StartFragment-->
<colgroup><col style="mso-width-alt: 1877; mso-width-source: userset; width: 44pt;" width="59"></col>
<col style="mso-width-alt: 5973; mso-width-source: userset; width: 140pt;" width="187"></col>
<col style="mso-width-alt: 4693; mso-width-source: userset; width: 110pt;" width="147"></col>
<col style="mso-width-alt: 4608; mso-width-source: userset; width: 108pt;" width="144"></col>
</colgroup><tbody>
<tr height="32" style="height: 24.0pt;">
<td class="xl66" height="32" style="height: 24.0pt; width: 44pt;" width="59">S.No.</td>
<td class="xl64" style="border-left: none; width: 140pt;" width="187">Features</td>
<td class="xl64" style="border-left: none; width: 110pt;" width="147">Jmeter</td>
<td class="xl64" style="border-left: none; width: 108pt;" width="144">Gatling</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">1</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">First
released</td>
<td align="right" class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">1998</td>
<td align="right" class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">2011</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">2</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Based
on</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Java</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Scala</td>
</tr>
<tr height="43" style="height: 32.0pt;">
<td class="xl67" height="43" style="border-top: none; height: 32.0pt; width: 44pt;" width="59">3</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Size
(of tool code base)</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">approx
500K lines code</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">approx
50K lines code</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">4</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">HTTP</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">5</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">HTTPS</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="64" style="height: 48.0pt;">
<td class="xl67" height="64" style="border-top: none; height: 48.0pt; width: 44pt;" width="59">6</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187"><span style="-webkit-text-stroke-width: 0px; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: -webkit-left; text-decoration-color: initial; text-decoration-style: initial; widows: 2;">WebSocket</span></td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes(external
plugins may be required)</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">7</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Rest
Apis</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">8</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Soap
Services</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">9</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">FTP</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">10</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">JDBC</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">11</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187"><span style="-webkit-text-stroke-width: 0px; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: -webkit-left; text-decoration-color: initial; text-decoration-style: initial; widows: 2;">Database via
JDBC</span></td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">12</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">JMS</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">13</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187"><span style="-webkit-text-stroke-width: 0px; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: -webkit-left; text-decoration-color: initial; text-decoration-style: initial; widows: 2;">TCP</span></td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="213" style="height: 160.0pt;">
<td class="xl67" height="213" style="border-top: none; height: 160.0pt; width: 44pt;" width="59">14</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">HTTP
Recorder</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes
(Built in proxy recorder to generate the requests from the user navigation.)</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes
(Has a separate Web proxy recorder, which works the same way as the JMeter
recorder. It generates a Scala simulation from the recorded user session.)</td>
</tr>
<tr height="192" style="height: 144.0pt;">
<td class="xl67" height="192" style="border-top: none; height: 144.0pt; width: 44pt;" width="59">15</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Distributed
Testing (Distributed Testing is the ability to use several slaves computers
as load generators to spread the load over multiple machines to be able to
simulate more concurrent users.)</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">16</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Scripting</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">GUI
Scripting</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Code
Scripting</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">17</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Command-Line
Mode</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">18</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Assertions</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">19</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Response
Extractors</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="107" style="height: 80.0pt;">
<td class="xl67" height="107" style="border-top: none; height: 80.0pt; width: 44pt;" width="59">20</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Documentation
(Installation, Quick Start, Reference Guide, Tutorials, Issue Tracker, On
Stackoverflow)</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">21</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Archive
Format Setup</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">22</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Installer
Format Setup</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">No</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="43" style="height: 32.0pt;">
<td class="xl67" height="43" style="border-top: none; height: 32.0pt; width: 44pt;" width="59">23</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Command-line
Executable Setup</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">24</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">GUI
Executable Setup</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">25</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Requires
Java Setup</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">26</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Target
Audience</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">QA
Engineers</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Devops
Engineers</td>
</tr>
<tr height="171" style="height: 128.0pt;">
<td class="xl67" height="171" style="border-top: none; height: 128.0pt; width: 44pt;" width="59">27</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Performance</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">One
Thread = One User Paradigm.<br />
The user waits for the server response when sending a request.<br />
Synchronous processing.</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Simulate
multiple virtual users with a single Thread.<br />
It allows fully asynchronous computing<br />
ASynchronous processing.</td>
</tr>
<tr height="545" style="height: 409.0pt;">
<td class="xl67" height="545" style="border-top: none; height: 409.0pt; width: 44pt;" width="59">28</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Test
Execution</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">To
launch a test with JMeter, there are two methods:<br />
1. Launch the GUI, then launch the test inside GUI,<br />
2. Launch the test via command-line (recommended because using GUI listeners
consumes a lot of memory.).</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">To
launch a test with gatling, run the .sh script and select the simulation
(within user-files/simulations folder).<br />
<br />
During the test run, gatling displays statistics within the console. The
results of the test can be viewed at the end of the test. Gatling generates a
generic test report with response time, number of OK/KO transactions and
detailed statistics for every request. The report is not customizable.</td>
</tr>
<tr height="43" style="height: 32.0pt;">
<td class="xl67" height="43" style="border-top: none; height: 32.0pt; width: 44pt;" width="59">29</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187"><span style="-webkit-text-stroke-width: 0px; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: -webkit-left; text-decoration-color: initial; text-decoration-style: initial; widows: 2;">Command-line
live metrics during test</span></td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">30</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">HTML
Report</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="43" style="height: 32.0pt;">
<td class="xl67" height="43" style="border-top: none; height: 32.0pt; width: 44pt;" width="59">31</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Raw
Results during test execution</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">32</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">UI
Results of test</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">No</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">33</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Graphite
Support</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="21" style="height: 16.0pt;">
<td class="xl67" height="21" style="border-top: none; height: 16.0pt; width: 44pt;" width="59">34</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Grafana
+ InfluxDB</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes</td>
</tr>
<tr height="64" style="height: 48.0pt;">
<td class="xl67" height="64" style="border-top: none; height: 48.0pt; width: 44pt;" width="59">35</td>
<td class="xl65" style="border-left: none; border-top: none; width: 140pt;" width="187">Cloud
load testing</td>
<td class="xl65" style="border-left: none; border-top: none; width: 110pt;" width="147">Yes
(Better cloud support than Gatling).</td>
<td class="xl65" style="border-left: none; border-top: none; width: 108pt;" width="144">Yes
(But not better that JMeter).</td>
</tr>
<!--EndFragment-->
</tbody></table>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com1tag:blogger.com,1999:blog-3208198902285046621.post-64056960168998801362014-11-13T03:45:00.000-08:002014-11-13T03:45:34.817-08:00Programming with Swift for iOS !<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div>
What is swift?</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li>A new programming language for iOS and OSX app development.</li>
<li>Adopts modern programming patterns and features to make programming easier and flexible.</li>
<li>Provides seamless access to existing Cocoa frameworks and mix-and-match interoperability with Objective-C code.</li>
<li>First industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.</li>
</ul>
<div>
<br /></div>
<div>
<div>
New in swift</div>
<div>
<ul style="text-align: left;">
<li>Support for functional programming patterns like maps and filters.</li>
<li>Structs support protocols, methods and extensions.</li>
<li>Support for Generics and optionals.</li>
<li>Support for tuples and hence functions that can return multiple values.</li>
</ul>
<div>
<div>
Why use swift?</div>
<div>
<ul style="text-align: left;">
<li>About 2.8X faster than objective C.</li>
<li>A compiled programming language with syntax similar to scripting languages.</li>
<li>Improved readability over other languages by removing extraneous parenthesis and semi colons.</li>
<li>Enums and control flows have been vastly improved.</li>
</ul>
<div>
<br /></div>
</div>
</div>
</div>
</div>
<div>
<div>
Tools Needed</div>
<div>
<ul style="text-align: left;">
<li>Needs Apple LLVM 6.0 for compilation, which is shipped with Xcode 6.0.</li>
<li>Uses the same runtime as existing Objective-C system on Mac OS and iOS.</li>
<li>Backward compatible up-to iOS 7.0.</li>
</ul>
</div>
</div>
<div>
<div>
Introduction to “Playground”</div>
<div>
<ul style="text-align: left;">
<li>A new type of file that allows you to test out Swift code, and see the results of each line in the sidebar.</li>
<li>Results appear on the sidebar as soon as any code is typed.</li>
<li>Great way to learn about Swift, to experiment with new APIs, to prototype code or algorithms.</li>
</ul>
</div>
</div>
<div>
<div>
Objective C Vs Swift</div>
<div>
<ul style="text-align: left;">
<li><b>Closures: </b>Closures are self-contained blocks of functionality that can be passed around and used in your code. Closures in Swift are similar to blocks in C and Objective-C.</li>
<li><b>AnyObject:</b> The equivalent of ‘id’ from Objective C, is ‘AnyObject’ in swift.</li>
<li><b>Introspection:</b> The equivalent of doing if ([obj isKindOfClass:[NSString class]]) { ... }) in swift is if obj is String.</li>
</ul>
</div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com13tag:blogger.com,1999:blog-3208198902285046621.post-19666235458717362692014-03-10T00:07:00.000-07:002014-03-25T04:39:17.030-07:00iOS Keychain: Sharing data between iOS apps !<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: left;">
<b><span style="color: blue; font-family: Times, Times New Roman, serif; font-size: large;"><i>Save data in keychain from one iOS app and access it from another iOS app (Xcode 5) !</i></span></b></h3>
<div>
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div>
<u style="color: #555555; font-style: inherit; font-variant: inherit; line-height: 21px;"><b><span style="font-family: Times, Times New Roman, serif;">Creating your first app that will write to the Keychain</span></b></u></div>
<div>
<span style="border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"></span><br />
<div style="font-style: inherit; font-variant: inherit;">
<span style="border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="color: #555555; font-family: Times, Times New Roman, serif;"><span style="line-height: 21px;"><u><b><br /></b></u></span></span></span></div>
<span style="border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;">
<div style="font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><span style="line-height: 21px;">Settings for project : </span></span></div>
<div>
<ol style="text-align: left;">
<li style="font-style: inherit; font-variant: inherit;"><span style="font-style: inherit; font-variant: inherit; line-height: 21px;"><span style="font-family: Times, Times New Roman, serif;">Add the Security.framework to your project.</span></span></li>
<li style="font-style: inherit; font-variant: inherit;"><span style="font-family: Times, Times New Roman, serif;"><span style="font-style: inherit; font-variant: inherit; line-height: 21px;">Download<span style="color: #555555;"> </span></span><strong style="background-color: rgba(40, 40, 40, 0.0980392); border: 0px; color: #333333; font-style: inherit; font-variant: inherit; line-height: 21px; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://github.com/kishikawakatsumi/UICKeyChainStore" style="border: 0px; color: #e86a4d; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">UICKeyChainStore</a></strong><span style="color: #555555; font-style: inherit; font-variant: inherit; line-height: 21px;"> </span><span style="color: #555555; font-style: inherit; font-variant: inherit; line-height: 21px;"> </span><span style="font-style: inherit; font-variant: inherit; line-height: 21px;">and add the</span><span style="color: #555555; font-style: inherit; font-variant: inherit; line-height: 21px;"> </span><span style="font-style: inherit; font-variant: inherit;"><span style="color: red;">UICKeyChainStore.h</span></span><span style="color: #e82300; font-style: inherit; font-variant: inherit;"> </span><span style="font-style: inherit; font-variant: inherit;">and </span><span style="font-style: inherit; font-variant: inherit;"><span style="color: red;">UICKeyChainStore.m</span></span><span style="font-style: inherit; font-variant: inherit;"> </span><span style="font-style: inherit; font-variant: inherit;">fi</span><span style="font-style: inherit; font-variant: inherit; line-height: 21px;">les </span><span style="font-style: inherit; font-variant: inherit;">from <b>Lib</b> folder</span><span style="font-style: inherit; font-variant: inherit; line-height: 21px;"> to your project.</span></span></li>
<li style="font-style: inherit; font-variant: inherit;"><span style="font-style: inherit; font-variant: inherit;"><span style="font-family: Times, Times New Roman, serif;">Go to Target -> Capabilities -> Keychain Sharing. By default it is off. On this option.</span></span></li>
<li><span style="font-family: Times, Times New Roman, serif;"><span style="font-style: inherit; font-variant: inherit;">As you will on it, a file name </span><span style="color: red; font-style: inherit; font-variant: inherit;">projectName.entitlements</span><span style="font-style: inherit; font-variant: inherit;"> will add in your "Project Navigator", with key </span><b style="font-style: inherit; font-variant: inherit;">"Keychain Access Groups"</b><span style="font-style: inherit; font-variant: inherit;"> of type "Array" with one "Item" of type "String" and Value "$(AppI</span><span style="font-style: inherit; font-variant: inherit;">denti</span><span style="font-style: inherit; font-variant: inherit;">fie</span><span style="color: #333333; font-style: inherit; font-variant: inherit;"><span style="line-height: 18px;">rPrefix)$(CFBundleIdentifier)". For example <b>: </b>com.my.firstApp is the Bundle identifier then Value will be<b> </b></span></span><span style="font-style: inherit; font-variant: inherit;">"</span><b style="font-style: inherit; font-variant: inherit;">$(AppIdentifie<span style="color: #333333;"><span style="line-height: 18px;">rPrefix)</span></span></b><b style="color: #333333; font-style: inherit; font-variant: inherit; line-height: 18px;">com.my.firstApp</b><span style="color: #333333; font-style: inherit; font-variant: inherit;"><span style="line-height: 18px;">". It will look like this : </span></span></span></li>
</ol>
</div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="color: #333333;"><span style="line-height: 18px;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></span></div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="color: #333333;"><span style="line-height: 18px;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTxd8ErGXe2NM8NTqWFA7sEy_Hq9KyIxl2oDVMqWRnL9b9jNevFaGDQ8JFEP8sA0uyJU1Gfr467wJo25O7QmwAKpylECumFqcWTDAjqStMHeEKIgQSw-P0LN2mcXuVgTk0zOc7s_JMXYI/s1600/Screen+Shot+2014-03-10+at+11.25.25+AM.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/AVvXsEhTxd8ErGXe2NM8NTqWFA7sEy_Hq9KyIxl2oDVMqWRnL9b9jNevFaGDQ8JFEP8sA0uyJU1Gfr467wJo25O7QmwAKpylECumFqcWTDAjqStMHeEKIgQSw-P0LN2mcXuVgTk0zOc7s_JMXYI/s1600/Screen+Shot+2014-03-10+at+11.25.25+AM.png" height="82" width="400" /></span></a></div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="color: #333333; font-family: Times, Times New Roman, serif;"><span style="line-height: 18px;"><br /></span></span></div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="color: #333333; font-family: Times, Times New Roman, serif;"><span style="line-height: 18px;">Now all you need to do is start using the UICKeyChainStore and you'll be saving data to the KeyChain.</span></span></div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="color: #333333; font-family: Times, Times New Roman, serif;"><span style="line-height: 18px;"><br /></span></span></div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: #333333;"><span style="line-height: 18px;">Now, in your class import "</span></span><b>UICKeyChainStore.h</b><span style="color: #333333; font-style: inherit; font-variant: inherit; line-height: 18px;">" and write the following code: </span></span></div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="color: #333333; font-family: Times, Times New Roman, serif;"><span style="line-height: 18px;"><br /></span></span></div>
<div>
<div style="font-style: inherit; font-variant: inherit;">
<b><span style="font-family: Times, Times New Roman, serif;">[UICKeyChainStore setString:@"mySecretPassword" forKey:@"password" service:@"MyService"];</span></b></div>
<div style="font-style: inherit; font-variant: inherit;">
<b><span style="font-family: Times, Times New Roman, serif;"><br /></span></b></div>
<div style="font-style: inherit; font-variant: inherit;">
<b><span style="font-family: Times, Times New Roman, serif;">[UICKeyChainStore stringForKey:@"password" service:@"MyService"];</span></b></div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="font-style: inherit; font-variant: inherit;">
<div>
<span style="font-family: Times, Times New Roman, serif;">Specifying the service allows you to store keys for a particular service, maybe you have a Twitter or Facebook specific set of keys you wish to save.</span></div>
<div>
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div>
<span style="font-family: Times, Times New Roman, serif;">As you can see we are not specifying the accessGroup. By default it will pick the first access-group specified in your </span><span style="font-family: Times, 'Times New Roman', serif;">projectName.entitlements</span><span style="font-family: Times, Times New Roman, serif;"> when writing and will search across all access-groups when none is specified.</span></div>
</div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="font-style: inherit; font-variant: inherit;">
<b><u><span style="color: #444444; font-family: Times, Times New Roman, serif;">Allowing your second app to access your shared keychain data:</span></u></b></div>
<div style="font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div style="font-style: inherit; font-variant: inherit;">
<div style="font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><span style="line-height: 21px;">Settings for project : </span></span></div>
<div>
<ol>
<li style="font-style: inherit; font-variant: inherit;"><span style="font-family: Times, Times New Roman, serif;"><span style="line-height: 21px;">Repeat above steps from 1 to 3 (for firstApp). It will look like this : </span></span></li>
</ol>
<div>
<span style="font-family: Times, Times New Roman, serif;"><span style="line-height: 21px;"><br /></span></span></div>
</div>
</div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVgDOQeqMZqmQVO8v-CrcWejjxSnAWG3F2tNe_xL8XIpTGD9UaYniZWsZdBMhOTN7pQPO_yP6rWHpkzNS8qTSMddArK7gUpTZPOxmslYyvUQ_BNbE3wBlv1eoMJggV9H3AVdYzUiyGxPY/s1600/Screen+Shot+2014-03-10+at+11.44.56+AM.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/AVvXsEiVgDOQeqMZqmQVO8v-CrcWejjxSnAWG3F2tNe_xL8XIpTGD9UaYniZWsZdBMhOTN7pQPO_yP6rWHpkzNS8qTSMddArK7gUpTZPOxmslYyvUQ_BNbE3wBlv1eoMJggV9H3AVdYzUiyGxPY/s1600/Screen+Shot+2014-03-10+at+11.44.56+AM.png" height="83" width="400" /></span></a></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: center;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: center;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;">We want access to the Keychain group $(AppIdentifierPrefix)com.my.firstApp for reading, but we still want the default writing to occur in our own keychain group so we still specify $(AppIdentifierPrefix)com.my.secondApp as the first / default group. Add one more item in "Keychain Access Groups" with Value $(AppIdentifierPrefix)com.my.firstApp</span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;">It will look like this: </span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilk6BPJYHjVKY-mQFT9eEUedCeiBXyYvkwGFNHSAXm61eTp8CAKlr7lDGqWwm-UqIME5i2r-UsXUmTms7uUXD8ReXbHJYMKItJZ_xbEMDYxIHXt_xhXGox6WbSzU-YlTUAMMSnY9X_kWw/s1600/Screen+Shot+2014-03-10+at+11.46.45+AM.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/AVvXsEilk6BPJYHjVKY-mQFT9eEUedCeiBXyYvkwGFNHSAXm61eTp8CAKlr7lDGqWwm-UqIME5i2r-UsXUmTms7uUXD8ReXbHJYMKItJZ_xbEMDYxIHXt_xhXGox6WbSzU-YlTUAMMSnY9X_kWw/s1600/Screen+Shot+2014-03-10+at+11.46.45+AM.png" height="85" width="400" /></span></a></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit; text-align: left;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;">Now, read the value from the shared Keychain exactly how we did in our first app.</span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><span style="color: #333333;"><span style="line-height: 18px;">In your class import "</span></span><b>UICKeyChainStore.h</b><span style="color: #333333; font-style: inherit; font-variant: inherit; line-height: 18px;">" and write the following code: </span></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="color: #333333; font-style: inherit; font-variant: inherit; line-height: 18px;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;">[UICKeyChainStore stringForKey:@"password" service:@"MyService"];</span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;">This should return the value “mySecretPassword” :)</span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="color: red; font-family: Times, Times New Roman, serif;"><b>Happy Coding :)</b></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<span style="font-family: Times, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; font-style: inherit; font-variant: inherit;">
<br /></div>
</div>
</span></div>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com0tag:blogger.com,1999:blog-3208198902285046621.post-74172107188361011352013-10-01T00:15:00.002-07:002013-10-04T00:51:42.081-07:00Send Mail with multiple attachments to multiple recipients through AppleScript !<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<br />
<br />
<b><span style="color: #6aa84f;">#Read file for mail body</span></b><br />
<b>set</b> filePath <b>to</b> "/Users/......../MailBodyText.txt"</div>
<div class="p1">
<b>set</b> theContent <b>to</b> (<b>read</b> filePath)<br />
<br />
<span style="color: red;">OR</span><br />
<br />
<div class="p1">
<b><span style="color: #6aa84f;">#Compose mail body</span></b></div>
<div class="p2">
<b>set</b> <span class="s1">theContent</span> <b>to</b> "Hi,</div>
<div class="p3">
<br /></div>
<div class="p2">
New build is available. Please find the details below:<br />
Version: 1.1.1<br />
URL:http://...........ipa</div>
<div class="p3">
<br /></div>
<div class="p2">
Detailed release note is attached for your reference.</div>
<div class="p3">
<br /></div>
<div class="p2">
Regards,</div>
<div class="p2">
Dev-Team</div>
<div class="p3">
"</div>
<br />
<div class="p1">
<b><span style="color: #6aa84f;">#set file for attachment</span></b></div>
<div class="p2">
<b>set</b> <span class="s1">theAttachment1</span> <b>to</b> <span class="s5"><i>POSIX file</i></span> "/Users/............/release_notes.xls"<br />
<br />
<span style="color: #6aa84f;"><b>#set Another attachment for latest log file</b></span><br />
<b>set</b> <span class="s1">attachFilePath</span> <b>to</b> "/Users/....../builds/" & <span class="s1">LatestFolderName</span> & "/log"<br />
<span class="s3"><b>set</b> </span>theAttachment2<span class="s3"> <b>to</b> </span><span class="s5"><i>POSIX file</i></span><span class="s3"> </span>attachFilePath<br />
<br />
<br />
<div class="p1">
<b><span style="color: #6aa84f;">#Set Recipients</span></b></div>
<div class="p2">
<b>set</b> <span class="s1">nameList</span> <b>to</b> {"Archana Chaurasia", "Recipient2", "Recipient3"}</div>
<div class="p2">
<b>set</b> <span class="s1">addressList</span> <b>to</b> {"archana.2207@gmail.com", "Recipient2@test.com", "Recipient3@test.com"}<br />
<br />
<div class="p1">
<span style="color: #6aa84f;"><b>#Mail Tell Block</b></span></div>
<div class="p2">
<b>tell</b> <span class="s2"><i>application</i></span> "Mail"</div>
<div class="p7">
<span style="color: #6aa84f;"><b>#Create the message</b></span></div>
<div class="p8">
<span class="s3"><span class="Apple-tab-span"></span><b> set</b> </span><span class="s1">theMessage</span><span class="s3"> <b>to</b> </span><b>make</b><span class="s3"> </span>new<span class="s3"> </span><i>outgoing message</i><span class="s3"> </span>with properties<span class="s3"> {</span><span class="s4">subject</span><span class="s3">:</span><span class="s1">releaseVersion</span><span class="s3">, </span><span class="s4">content</span><span class="s3">:</span><span class="s1">theContent</span><span class="s3">, </span><span class="s4">visible</span><span class="s3">:</span><span class="s6">true</span><span class="s3">}</span></div>
<div class="p7">
<span class="s3"><span class="Apple-tab-span"></span></span> <span style="color: #6aa84f;"><b>#Set a recipient</b></span></div>
<div class="p4">
<span class="s3"><span class="Apple-tab-span"></span><b> tell</b> </span>theMessage</div>
<div class="p9">
<span class="s3"><span class="Apple-tab-span"></span><span class="Apple-tab-span"></span></span><b> make</b><span class="s3"> </span>new<span class="s3"> </span><i>attachment</i><span class="s3"> </span>with properties<span class="s3"> {</span><span class="s4">file name</span><span class="s3">:</span><span class="s1">theAttachment1</span><span class="s3">} </span>at<span class="s3"> <b>after</b> <b>the</b> <b>last</b> </span><i>paragraph</i></div>
<div class="p9">
<span class="s3"><span class="Apple-tab-span"></span><span class="Apple-tab-span"></span></span><b> make</b><span class="s3"> </span>new<span class="s3"> </span><i>attachment</i><span class="s3"> </span>with properties<span class="s3"> {</span><span class="s4">file name</span><span class="s3">:</span><span class="s1">theAttachment2</span><span class="s3">} </span>at<span class="s3"> <b>after</b> <b>the</b> <b>last</b> </span><i>paragraph</i></div>
<div class="p10">
<span class="Apple-tab-span"></span><span class="Apple-tab-span"></span><b> repeat</b> <b>with</b> <span class="s1">i</span> <b>from</b> 1 <b>to</b> <span class="s2"><b>count</b></span> <span class="s1">nameList</span></div>
<div class="p11">
<span class="s3"><span class="Apple-tab-span"></span><span class="Apple-tab-span"></span><span class="Apple-tab-span"></span></span><b> make</b><span class="s3"> </span>new<span class="s3"> </span><i>to recipient</i><span class="s3"> </span>at<span class="s3"> <b>end</b> <b>of</b> </span><i>to recipients</i><span class="s3"> </span>with properties<span class="s3"> {</span><span class="s4">name</span><span class="s3">:</span><i>item</i><span class="s3"> </span><span class="s1">i</span><span class="s3"> <b>of</b> </span><span class="s1">nameList</span><span class="s3">, </span><span class="s4">address</span><span class="s3">:</span><i>item</i><span class="s3"> </span><span class="s1">i</span><span class="s3"> <b>of</b> </span><span class="s1">addressList</span><span class="s3">}</span></div>
<div class="p10">
<span class="Apple-tab-span"></span><span class="Apple-tab-span"></span><b> end</b> <b>repeat</b></div>
<div class="p12">
<span style="color: #6aa84f;"><b><span class="s3"><span class="Apple-tab-span"></span><span class="Apple-tab-span"></span></span>#Send the Message</b></span></div>
<div class="p9">
<span class="s3"><span class="Apple-tab-span"></span><span class="Apple-tab-span"></span></span><b> send</b></div>
<div class="p5">
<span class="Apple-tab-span"></span><b> end</b> <b>tell</b></div>
<br />
<div class="p2">
<b>end</b> <b>tell</b></div>
</div>
</div>
</div>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com3tag:blogger.com,1999:blog-3208198902285046621.post-31893431326599505282013-09-30T23:38:00.002-07:002013-10-01T00:16:12.422-07:00Read values of properties from plist through AppleScript !<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<h3>
<b><u><span style="color: #38761d;">#Read Bundle Version from info.plist through AppleScript !</span></u></b></h3>
</div>
<div class="p2">
<b><br /></b><b><br /></b><b>set</b> <b>the</b> <span class="s1">plistfile_path</span> <b>to</b> "/Users/................/AppName-Info.plist"</div>
<div class="p3">
<br /></div>
<div class="p2">
<b>tell</b> <span class="s2"><i>application</i></span> "System Events"</div>
<div class="p4">
<span class="s3"><span class="Apple-tab-span"></span><b>set</b> </span>p_list<span class="s3"> <b>to</b> </span><span class="s2"><i>property list file</i></span><span class="s3"> (</span>plistfile_path<span class="s3">)</span></div>
<div class="p5">
<span class="Apple-tab-span"></span><b>set</b> <span class="s1">releaseVersion</span> <b>to</b> <span class="s4">value</span> <b>of</b> <span class="s2"><i>property list item</i></span> "CFBundleVersion" <b>of</b> <span class="s1">p_list</span></div>
<div class="p2">
<b>end</b> <b>tell</b><br />
<div>
<b><br /></b></div>
</div>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com1tag:blogger.com,1999:blog-3208198902285046621.post-76972593319732697922013-09-30T03:56:00.005-07:002013-09-30T03:56:56.881-07:00Get log file from latest folder through AppleScript !<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<h3 style="text-align: left;">
<span style="color: #6aa84f;"><b>#This AppleScript is for get latest log file generated during automatic build server.</b></span></h3>
</div>
<div class="p2">
<b>set</b> <span class="s1">sourceFolder</span> <b>to</b> "Users:....:.....:targetFolder"</div>
<div class="p3">
<br /></div>
<div class="p2">
<b>property</b> <span class="s1">the_path</span> : "/Users/..../.../targetFolder"</div>
<div class="p6">
<span class="s3"><b>set</b> </span>theFolder<span class="s3"> <b>to</b> (</span><span class="s5"><i>POSIX file</i></span><span class="s3"> </span>the_path<span class="s3">) <b>as</b> </span><span class="s2"><i>alias</i></span></div>
<div class="p3">
<br /></div>
<div class="p2">
<b>tell</b> <span class="s2"><i>application</i></span> "Finder"</div>
<div class="p5">
<span class="Apple-tab-span"></span><b>set</b> <span class="s1">itemGroup</span> <b>to</b> <span class="s2"><b>sort</b></span> (<b>get</b> <b>every</b> <span class="s2"><i>folder</i></span> <b>of</b> <span class="s1">theFolder</span>) <span class="s2">by</span> <span class="s4">creation date</span></div>
<div class="p5">
<span class="Apple-tab-span"></span><b>set</b> <span class="s1">LatestFolder</span> <b>to</b> (<b>get</b> <b>first</b> <span class="s2"><i>item</i></span> <b>of</b> <span class="s1">itemGroup</span>)</div>
<div class="p4">
<span class="s3"><span class="Apple-tab-span"></span><b>set</b> </span>LatestFolderName<span class="s3"> <b>to</b> </span>LatestFolder<span class="s3">'s </span><span class="s4">name</span></div>
<div class="p2">
<b>end</b> <b>tell</b></div>
<div class="p3">
<br /></div>
<div class="p2">
<b>set</b> <span class="s1">latestFilePath</span> <b>to</b> "/Users/..../..../targetFolder/" & <span class="s1">LatestFolderName</span> & "/log"<br />
<br />
<br />
<h3>
<span style="color: #6aa84f;">#This AppleScript is for get latest folder and it's name.</span></h3>
<div>
<span style="color: #6aa84f;"><br /></span></div>
<div>
<div class="p2">
<b>set</b> <span class="s1">sourceFolder</span> <b>to</b> "Users:....:.....:targetFolder"</div>
<div class="p3">
<br /></div>
<div class="p2">
<b>property</b> <span class="s1">the_path</span> : "/Users/..../.../targetFolder"</div>
<div class="p6">
<span class="s3"><b>set</b> </span>theFolder<span class="s3"> <b>to</b> (</span><span class="s5"><i>POSIX file</i></span><span class="s3"> </span>the_path<span class="s3">) <b>as</b> </span><span class="s2"><i>alias</i></span></div>
<div class="p3">
<br /></div>
<div class="p2">
<b>tell</b> <span class="s2"><i>application</i></span> "Finder"</div>
<div class="p5">
<span class="Apple-tab-span"></span><b>set</b> <span class="s1">itemGroup</span> <b>to</b> <span class="s2"><b>sort</b></span> (<b>get</b> <b>every</b> <span class="s2"><i>folder</i></span> <b>of</b> <span class="s1">theFolder</span>) <span class="s2">by</span> <span class="s4">creation date</span></div>
<div class="p5">
<span class="Apple-tab-span"></span><b>set</b> <span class="s1">LatestFolder</span> <b>to</b> (<b>get</b> <b>first</b> <span class="s2"><i>item</i></span> <b>of</b> <span class="s1">itemGroup</span>)</div>
<div class="p4">
<span class="s3"><span class="Apple-tab-span"></span><b>set</b> </span>LatestFolderName<span class="s3"> <b>to</b> </span>LatestFolder<span class="s3">'s </span><span class="s4">name</span></div>
<div class="p2">
<b>end</b> <b>tell</b></div>
<div class="p3">
<br /></div>
<div class="p2">
<div>
<br /></div>
</div>
</div>
</div>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com3tag:blogger.com,1999:blog-3208198902285046621.post-22871924825142394732013-09-30T03:29:00.000-07:002013-10-03T03:14:43.572-07:00Create ipa and plist file and upload files on server for Enterprise Application through Terminal !<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="p1">
<div class="p1">
<span class="s1">cd </span>"Applications path"<br />
<h3 style="text-align: left;">
<span style="color: #6aa84f;"><b><u>#Compile the build</u></b></span></h3>
xcodebuild -target AppTargetName -sdk iphoneos -configuration Release<br />
<div class="p2">
<br /></div>
<div class="p1">
<h3 style="text-align: left;">
<span style="color: #6aa84f;"><b><u>#Archive the build</u></b></span></h3>
</div>
<div class="p4">
/usr/bin/xcrun -sdk iphoneos PackageApplication -v $applicationPath -o $ipaPath --sign Barclays --embed $mobileprovisionPath</div>
<div class="p2">
<br /></div>
<div class="p1">
<br /></div>
<div class="p1">
<h3 style="text-align: left;">
<span style="color: #6aa84f;"><u><b>#create the plist</b></u></span></h3>
</div>
<div class="p3">
<span class="s1">echo </span>"<?xml version=\"1.0\" encoding=\"UTF-8\"?></div>
<div class="p3">
<span class="s1"><!DOCTYPE plist PUBLIC \</span>"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"></div>
<div class="p4">
<plist version=\<span class="s4">"1.0\"></span></div>
<div class="p4">
<dict></div>
<div class="p4">
<key>items</key></div>
<div class="p4">
<array></div>
<div class="p4">
<dict></div>
<div class="p4">
<key>assets</key></div>
<div class="p4">
<array></div>
<div class="p4">
<dict></div>
<div class="p4">
<key>kind</key></div>
<div class="p4">
<string>software-package</string></div>
<div class="p4">
<key>url</key></div>
<div class="p4">
<string>$urlForIpa</string></div>
<div class="p4">
</dict></div>
<div class="p4">
</array></div>
<div class="p4">
<key>metadata</key></div>
<div class="p4">
<dict></div>
<div class="p4">
<key>bundle-identifier</key></div>
<div class="p4">
<string>$bundleIdentifier</string></div>
<div class="p4">
<key>bundle-version</key></div>
<div class="p4">
<string>$bundleVersion</string></div>
<div class="p4">
<key>kind</key></div>
<div class="p4">
<string>software</string></div>
<div class="p4">
<key>title</key></div>
<div class="p4">
<string>AppName</string></div>
<div class="p4">
</dict></div>
<div class="p4">
</dict></div>
<div class="p4">
</array></div>
<div class="p4">
</dict></div>
<div class="p4">
</plist><span class="s4">" > "</span><span class="s3">projectName.</span>plist<span class="s4">"</span></div>
<div class="p2">
<br /></div>
<div class="p1">
<span class="s1"> </span></div>
<div class="p1">
<h3 style="text-align: left;">
<span style="color: #6aa84f;"><u>#upload files on server</u></span></h3>
<div>
<i><span style="color: #e06666;">Below values depends on your server inputs values !</span></i></div>
<div>
<br /></div>
<div>
curl --form ipa=@$ipaPath --form plist=@$plistPath --form os=$os --form branch=$branch --form type=$type --form version=$bundleVersion --form file_size=<span class="s3">22</span>MB --form info=$bundleVersion --form releasenotes=@$releasenotes --form smartphones=$smartphones --form tablets=$tablets $urlToUploadfiles</div>
</div>
<div class="p2">
<br /></div>
<br />
<div class="p2">
<br /></div>
</div>
</div>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com1tag:blogger.com,1999:blog-3208198902285046621.post-80157550198694340942013-05-16T03:47:00.000-07:002013-05-16T03:47:39.027-07:00<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: left;">
<span style="color: #cc0000;">How to know device type (Simulator, iPhone, iPod, iPad, iPad mini, Apple TV) programmatically ?<br />OR<br />How to know device model (iPad1, iPad2... etc) or (iPhone, iPhone4s...etc) programmatically ?</span></h3>
<br />
<br />
#import <sys/utsname.h><br />
<br />
struct utsname systemInfo;<br />
uname(&systemInfo);<br />
<br />
NSString *modelName = [NSString stringWithCString:systemInfo.machine<br />
encoding:NSUTF8StringEncoding];<br />
<br />
NSString *machineName = [NSString stringWithCString:systemInfo.machine<br />
encoding:NSUTF8StringEncoding];<br />
<br />
<br />
NSString *modelNumber = @"?";<br />
<br />
<h4 style="text-align: left;">
<span style="color: #cc0000;">//Simulator</span></h4>
if([modelName isEqualToString:@"i386"] || [modelName isEqualToString:@"x86_64"]) {<br />
modelName = @"iPhone Simulator";<br />
}<br />
<br />
<h4 style="text-align: left;">
<span style="color: #cc0000;">//iPhone</span></h4>
else if([modelName isEqualToString:@"iPhone1,1"]) {<br />
modelName = @"iPhone";<br />
modelNumber = @"A1203";<br />
}<br />
else if([modelName isEqualToString:@"iPhone1,2"]) {<br />
modelName = @"iPhone 3G";<br />
modelNumber = @"A1241/A1324";<br />
}<br />
else if([modelName isEqualToString:@"iPhone2,1"]) {<br />
modelName = @"iPhone 3GS";<br />
modelNumber = @"A1303/A1325";<br />
}<br />
else if([modelName isEqualToString:@"iPhone3,1"]) {<br />
modelName = @"iPhone 4 (GSM)";<br />
modelNumber = @"A1332";<br />
}<br />
else if([modelName isEqualToString:@"iPhone3,2"]) {<br />
modelName = @"iPhone 4 GSM Rev A";<br />
modelNumber = @"?";<br />
}<br />
else if([modelName isEqualToString:@"iPhone3,3"]) {<br />
modelName = @"iPhone 4 (CDMA)";<br />
modelNumber = @"A1349";<br />
}<br />
else if([modelName isEqualToString:@"iPhone4,1"]) {<br />
modelName = @"iPhone 4S";<br />
modelNumber = @"A1387/A1431";<br />
}<br />
else if([modelName isEqualToString:@"iPhone5,1"]) {<br />
modelName = @"iPhone 5 (GSM)";<br />
modelNumber = @"A1428";<br />
}<br />
else if([modelName isEqualToString:@"iPhone5,2"]) {<br />
modelName = @"iPhone 5 (GSM+CDMA)";<br />
modelNumber = @"A1429/A1442";<br />
}<br />
<br />
<h4 style="text-align: left;">
<span style="color: #cc0000;">//iPod touch</span></h4>
else if([modelName isEqualToString:@"iPod1,1"]) {<br />
modelName = @"iPod touch 1G";<br />
modelNumber = @"A1213";<br />
}<br />
else if([modelName isEqualToString:@"iPod2,1"]) {<br />
modelName = @"iPod touch 2G";<br />
modelNumber = @"A1288";<br />
}<br />
else if([modelName isEqualToString:@"iPod3,1"]) {<br />
modelName = @"iPod touch 3G";<br />
modelNumber = @"A1318";<br />
}<br />
else if([modelName isEqualToString:@"iPod4,1"]) {<br />
modelName = @"iPod touch 4G";<br />
modelNumber = @"A1367";<br />
}<br />
else if([modelName isEqualToString:@"iPod5,1"]) {<br />
modelName = @"iPod touch 5G";<br />
modelNumber = @"A1421";<br />
}<br />
<br />
<h4 style="text-align: left;">
<span style="color: #cc0000;">//iPad</span></h4>
else if([modelName isEqualToString:@"iPad1,1"]) {<br />
modelName = @"iPad 1G";<br />
modelNumber = @"A1219/A1337";<br />
}<br />
else if([modelName isEqualToString:@"iPad2,1"]) {<br />
modelName = @"iPad 2 (WiFi)";<br />
modelNumber = @"A1395";<br />
}<br />
else if([modelName isEqualToString:@"iPad2,2"]) {<br />
modelName = @"iPad 2 (GSM)";<br />
modelNumber = @"A1396";<br />
}<br />
else if([modelName isEqualToString:@"iPad2,3"]) {<br />
modelName = @"iPad 2 (CDMA)";<br />
modelNumber = @"A1397";<br />
}<br />
else if([modelName isEqualToString:@"iPad2,4"]) {<br />
modelName = @"iPad 2 (WiFi + Rev A)";<br />
modelNumber = @"A1395";<br />
}<br />
else if([modelName isEqualToString:@"iPad3,1"]) {<br />
modelName = @"iPad 3 (WiFi)";<br />
modelNumber = @"A1416";<br />
}<br />
else if([modelName isEqualToString:@"iPad3,2"]) {<br />
modelName = @"iPad 3 (GSM+CDMA)";<br />
modelNumber = @"A1403";<br />
}<br />
else if([modelName isEqualToString:@"iPad3,3"]) {<br />
modelName = @"iPad 3 (GSM)";<br />
modelNumber = @"A1430";<br />
}<br />
else if([modelName isEqualToString:@"iPad3,4"]) {<br />
modelName = @"iPad 4 (WiFi)";<br />
modelNumber = @"A1458";<br />
}<br />
else if([modelName isEqualToString:@"iPad3,5"]) {<br />
modelName = @"iPad 4 (GSM)";<br />
modelNumber = @"A1459";<br />
}<br />
else if([modelName isEqualToString:@"iPad3,6"]) {<br />
modelName = @"iPad 4 (GSM+CDMA)";<br />
modelNumber = @"A1460";<br />
}<br />
<br />
<h4 style="text-align: left;">
<span style="color: #cc0000;">//iPad mini</span></h4>
else if([modelName isEqualToString:@"iPad2,5"]) {<br />
modelName = @"iPad mini (WiFi)";<br />
modelNumber = @"A1432";<br />
}<br />
else if([modelName isEqualToString:@"iPad2,6"]) {<br />
modelName = @"iPad mini (GSM)";<br />
modelNumber = @"A1454";<br />
}<br />
else if([modelName isEqualToString:@"iPad2,7"]) {<br />
modelName = @"iPad mini (GSM+CDMA)";<br />
modelNumber = @"A1455";<br />
}<br />
<br />
<h4 style="text-align: left;">
<span style="color: #cc0000;">//Apple TV, just for funn:)</span></h4>
else if([modelName isEqualToString:@"AppleTV2,1"]) {<br />
modelName = @"Apple TV 2G";<br />
modelNumber = @"A1378";<br />
}<br />
else if([modelName isEqualToString:@"AppleTV3,1"]) {<br />
modelName = @"Apple TV 3G";<br />
modelNumber = @"A1427";<br />
}<br />
else if([modelName isEqualToString:@"AppleTV3,2"]) {<br />
modelName = @"Apple TV 3G (Rev A)";<br />
modelNumber = @"A1469";<br />
}<br />
<br />
NSLog(@"Device model: %@/ %@",modelName,modelNumber);<br />
<br />
<h4 style="text-align: left;">
<span style="color: #cc0000;">Happy Coding :)</span></h4>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com5tag:blogger.com,1999:blog-3208198902285046621.post-72739396096914808982012-09-26T03:31:00.000-07:002012-09-26T05:11:41.490-07:00Create Framework of an existing xcode project (Custom Framework)<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: #fefdfa; color: #333333;"><span style="font-family: inherit;">I have my xcode project named as "SocketTest", and I want to use it in my another application.</span></span><br />
<span style="font-family: inherit;"><span style="background-color: #fefdfa; color: #333333;">For this I have to create it's framework, because if I directly drag and drop it will increase the application size. So</span><span style="background-color: #fefdfa; color: #333333;"> </span><span style="background-color: #fefdfa;"><span style="color: #333333;"><span style="line-height: 18px;">I have been searching for a way to create a static library. I figured out how to do so but then had the issue of creating a static library that was only one file and worked with both iOS devices (arm6 and arm7 architectures and the iOS Simulator (i386 architecture). I finally got that to work but then ran into another problem. I was using the MapKit library which is unavailable in the i386 version. I could not figure out a way to make all of these work together. Finally, I figured out how to create a framework instead of a library. </span></span></span></span><br />
<span style="background-color: #fefdfa;"><span style="color: #333333; font-family: inherit;"><span style="line-height: 18px;"><br /></span></span></span>
<span style="background-color: #fefdfa;"><span style="color: #333333; font-family: inherit;"><span style="line-height: 18px;">Apple also approve apps with custom frameworks. </span></span></span><br />
<span style="background-color: #fefdfa;"><span style="color: #333333; font-family: inherit;"><span style="line-height: 18px;"><br /></span></span></span>
<span style="background-color: #fefdfa;"><span style="color: #333333; font-family: inherit;"><span style="line-height: 18px;">Let's proceed further how to build our own custom framework that will be re-usable, can use any other framework, and will work with both iOS devices and the iOS Simulator.</span></span></span><br />
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><br /></span>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><b>Step 1: Create a New Bundle Target</b></span><br />
<span style="font-size: medium;"><br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;" /></span>
<br />
<div class="separator" style="background-color: #fefdfa; clear: both; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFvRyLCH-ZMqDoZtx4-_ddEiM6fK9oFAoUhGRp9SLYLn1XK1XxioXaJfkTi46EWTGmZpVJrcYVl0lIgYkeGz5P8jqTxA-2hyrdVFzeojFVmPHcWWOrwrGMRurPfZ_-l-MeOaioytqXQqyO/s1600/Screen+shot+2011-09-20+at+7.40.15+PM.png" imageanchor="1" style="color: #7d181e; margin-left: 1em; margin-right: 1em; text-decoration: none;"><img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFvRyLCH-ZMqDoZtx4-_ddEiM6fK9oFAoUhGRp9SLYLn1XK1XxioXaJfkTi46EWTGmZpVJrcYVl0lIgYkeGz5P8jqTxA-2hyrdVFzeojFVmPHcWWOrwrGMRurPfZ_-l-MeOaioytqXQqyO/s400/Screen+shot+2011-09-20+at+7.40.15+PM.png" style="-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 20px; background-color: white; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(204, 204, 204); box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 20px; padding: 8px; position: relative;" width="400" /></a></div>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;"></span><br />
<div style="font-size: 13px;">
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;"><span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"><br /></span></span></div>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 18px;">
<span style="font-size: x-small;">A bundle is used here because it will allow us to store xib files, as well as source code and any other resources we need. My new bundle target will be name "iSocket".</span></span><br />
<br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><b>Step 2: Configure Bundle Target</b></span><br />
<span style="font-size: medium;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGEEbJgKEceyvYziHgP-WLZHgCYyA1vm1ZtHhGt5RYe52QbLVM20v9YcLjuEQhFBHWU218kXOg_lg0saMHVLW06XT0RxHnzggtl3-T829l12YVLvQ3mvstVHCIq37tVOCQxF0IEIxAzmM/s1600/Screen+Shot+2012-09-26+at+4.08.55+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGEEbJgKEceyvYziHgP-WLZHgCYyA1vm1ZtHhGt5RYe52QbLVM20v9YcLjuEQhFBHWU218kXOg_lg0saMHVLW06XT0RxHnzggtl3-T829l12YVLvQ3mvstVHCIq37tVOCQxF0IEIxAzmM/s400/Screen+Shot+2012-09-26+at+4.08.55+PM.png" width="400" /></a></div>
<span style="font-size: medium;"><br /></span>
<br />
<br />
<div class="separator" style="background-color: #fefdfa; clear: both; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; text-align: center;">
</div>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">Here is a list of the changes that need to be made:</span><br />
<ol style="text-align: left;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Base SDK = Latest iOS</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Architectures = Standard</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Build Active Architecture = No</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Valid Architectures = $(ARCHS_STANDARD_32_BIT)</li>
<ul>
<li>It is important to copy this string exactly as is</li>
</ul>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Dead Code Stripping = No</li>
<ul>
<li>This is because Apple does not want you to have a dynamic library. This enables that "static" part of the framework</li>
</ul>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Link With Standard Libraries = No</li>
<ul>
<li>Any libraries required by your framework will have to be imported into the project that uses your framework</li>
<li>ie- If your framework requires MapKit (like mine did) then the app that uses your framework will need to add MapKit to the imported frameworks</li>
</ul>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Match-O Type = Relocatable Object File</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Wrapper Extension = framework</li>
</ol>
<div>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"> </span><span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><b>Step 3: Complete Bundle Target Setup</b></span></div>
<div>
<span style="font-size: medium;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0yRPRPgYbXbIIA0ydm94UF-eh78Bsd8E-awm_2xvYJtg8o6SqBgdLM7FehIBVpeQKouaWRZbMV6vdVOE5qWAGV6YZnLubqFXWnwDliZjvOWCPMtgTALd2RXnsmPqNG1owJp0fO7ejNGg/s1600/Screen+Shot+2012-09-26+at+4.39.39+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0yRPRPgYbXbIIA0ydm94UF-eh78Bsd8E-awm_2xvYJtg8o6SqBgdLM7FehIBVpeQKouaWRZbMV6vdVOE5qWAGV6YZnLubqFXWnwDliZjvOWCPMtgTALd2RXnsmPqNG1owJp0fO7ejNGg/s400/Screen+Shot+2012-09-26+at+4.39.39+PM.png" width="400" /></a></div>
<div>
<span style="font-size: medium;"><br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;" /></span>
<div class="separator" style="background-color: #fefdfa; clear: both; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; text-align: center;">
</div>
<div class="separator" style="background-color: #fefdfa; clear: both; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; text-align: center;">
<br /></div>
<ul style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Now that we have the source code complete, go back to the target bundle we created and navigate to the "Build Phases" tab.</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Expand the "Compile Sources" section. Here we will add all *.m files that need to be compiled. Basically, any of the code that was written in the previous step (not including header files) should be added here. In my case, publicClass.m and privateClass.m are being added.</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">If your framework is using any other frameworks (such as MapKit) add it to "Link Binary with Libraries"</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">If you have any additional resources, add them to the "Copy Bundle Resources" section.</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Add "Copy Headers" as a new Build Phase</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Add header files to the "Copy Headers" section</li>
<ul style="line-height: 1.4; list-style: disc; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Any header files that should be public should be added and placed under "Public"</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">Any header files that should be private should be added and placed under "Private"</li>
</ul>
</ul>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">*Note: I also created a header file named "exampleHeader.h". This header file simply imports all of the public header files in my framework. Now, when another developer uses this framework he/she can just use</span><br />
<blockquote style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">
#import <exampleBundle/exampleHeader.h></blockquote>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">instead of importing every header file. This may be overkill for this example framework but it will be much appreciated by the developer if you build a complex framework that has several header files. </span><br />
<ul style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;"><ul style="line-height: 1.4; list-style: disc; margin: 0.5em 0px; padding: 0px 2.5em;"></ul>
</ul>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><b>Step 4: Fix <bundle name>-Prefix.pch</b></span></div>
<div>
<span style="font-size: medium;"><br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;" /></span><span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><span style="font-size: x-small;"> This file should have a line "#import <Cocoa/Cocoa.h>" and that line must be removed</span></span></div>
<div>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><span style="font-size: x-small;"><br /></span></span></div>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><b>Step 5: Create Aggregate Target</b></span><br />
<div>
<span style="font-size: medium;"><br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;" /></span>
<div class="separator" style="background-color: #fefdfa; clear: both; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgibV7-IGZ1IqedPhaikce87zwmougYH9SUw_yWrPv1FavjqHZ476wMIZGznEyMja2k7xbVL1UBNbWm_nMgPeCGlRv8wJOyemGIqCTatpbiZqSC0QHzlm5b2uV9jJRAHdySjTma_yvp2ECY/s1600/Screen+shot+2011-09-20+at+9.38.40+PM.png" imageanchor="1" style="color: #7d181e; margin-left: 1em; margin-right: 1em; text-decoration: none;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgibV7-IGZ1IqedPhaikce87zwmougYH9SUw_yWrPv1FavjqHZ476wMIZGznEyMja2k7xbVL1UBNbWm_nMgPeCGlRv8wJOyemGIqCTatpbiZqSC0QHzlm5b2uV9jJRAHdySjTma_yvp2ECY/s400/Screen+shot+2011-09-20+at+9.38.40+PM.png" style="-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 20px; background-color: white; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(204, 204, 204); box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 20px; padding: 8px; position: relative;" width="400" /></a></div>
<div class="separator" style="background-color: #fefdfa; clear: both; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; text-align: center;">
<br /></div>
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">I have named my aggregate target "exampleAggregate". The aggregrate is the final target and when it is built it will turn the code into a framework.</span><br />
<br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><b>Step 6: Configure Aggregate Target</b></span></div>
<div>
<span style="font-size: medium;"><br /></span></div>
<div>
<ol style="text-align: left;">
<li><span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">Go to the "Build Phases" tab of the newly created aggregate target.</span></li>
<li><span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">Add a new "Run Script" as a build phase.</span></li>
<li><span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">Set the script to be the following where FMK_NAME is the name of your new framework:</span></li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
</div>
<blockquote style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;">
# Sets the target folders and the final framework product.<br />
FMK_NAME=SocketTest<br />
FMK_VERSION=A<br />
<br />
# Install dir will be the final output to the framework.<br />
# The following line create it in the root folder of the current project.<br />
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework<br />
<br />
# Working dir will be deleted after the framework creation.<br />
WRK_DIR=build<br />
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework<br />
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework<br />
<br />
# Building both architectures.<br />
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos<br />
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator<br />
<br />
# Cleaning the oldest.<br />
if [ -d "${INSTALL_DIR}" ]<br />
then<br />
rm -rf "${INSTALL_DIR}"<br />
fi<br />
<br />
# Creates and renews the final product folder.<br />
mkdir -p "${INSTALL_DIR}"<br />
mkdir -p "${INSTALL_DIR}/Versions"<br />
mkdir -p "${INSTALL_DIR}/Versions/${FMK_VERSION}"<br />
mkdir -p "${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources"<br />
mkdir -p "${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers"<br />
<br />
# Creates the internal links.<br />
# It MUST uses relative path, otherwise will not work when the folder is copied/moved.<br />
ln -s "${FMK_VERSION}" "${INSTALL_DIR}/Versions/Current"<br />
ln -s "Versions/Current/Headers" "${INSTALL_DIR}/Headers"<br />
ln -s "Versions/Current/Resources" "${INSTALL_DIR}/Resources"<br />
ln -s "Versions/Current/${FMK_NAME}" "${INSTALL_DIR}/${FMK_NAME}"<br />
<br />
# Copies the headers and resources files to the final product folder.<br />
cp -R "${DEVICE_DIR}/Headers/" "${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/"<br />
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/"<br />
<br />
# Removes the binary and header from the resources folder.<br />
rm -r "${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/Headers" "${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/${FMK_NAME}"<br />
<br />
# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.<br />
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}"<br />
<br />
rm -r "${WRK_DIR}"</blockquote>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizH3roeYNuQ5lt_xNMdJef_39m7LJcfK8l5PZhqBmEmKZcYta1sdAAIj3ErUaiUHRokPFPEL9-j8gPNkh0sNc1enEAZt11-VU-neeq-CKYg_uK3Df848Z4C_Y3cd-IPtcaJoCeS40lKPY/s1600/Screen+Shot+2012-09-26+at+4.42.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizH3roeYNuQ5lt_xNMdJef_39m7LJcfK8l5PZhqBmEmKZcYta1sdAAIj3ErUaiUHRokPFPEL9-j8gPNkh0sNc1enEAZt11-VU-neeq-CKYg_uK3Df848Z4C_Y3cd-IPtcaJoCeS40lKPY/s320/Screen+Shot+2012-09-26+at+4.42.59+PM.png" width="320" /></a></div>
<div>
<br /></div>
<br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;" />
<br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: medium;"><b>Step 7: Build the Aggregate Target</b></span></div>
<div>
<span style="font-size: medium;"><br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;" /></span><span style="font-family: inherit;"><span style="background-color: #fefdfa; color: #333333;">We have completed all necessary steps and your framework is ready to build. Now build the aggregate target and bundle target, you will find a new folder under <project root directory>\Products and it will be given the name <bundle name>.framework. This is your new framework! It contains the header files that developers will need and the compiled source code.</span><br style="background-color: #fefdfa; color: #333333; line-height: 18px;" /><br style="background-color: #fefdfa; color: #333333; line-height: 18px;" /><span style="background-color: #fefdfa; color: #333333;">Your next step will be to create a project that uses this framework. When you do so you will want to import the framework. Do this by navigating to the "Build Settings" tab under your app target then click the "+" under "Link Binaries with Libraries" just as you would with any standard framework. The only difference is that your framework will not be in the list. You will have to click "Add Other..." then navigate to the <bundle name>.framework folder. Select that folder and click "Open". </span></span></div>
<div>
<span style="font-size: x-small;"><br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;" /></span>
<div class="separator" style="background-color: #fefdfa; clear: both; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6z_q5L74_Deutw9suC80e8wyTex65uAr5o5lhyqRULemlZvWOaNb-Aq9yVF57vCnqLlxJeUyU498F1pl1M5HSxL4XDCIgRlJBqOA4fVl1nPFmN57RyZe0EZz7inOnF6pvRy935e9JYdio/s1600/Screen+shot+2011-09-21+at+7.45.30+AM.png" imageanchor="1" style="color: #7d181e; margin-left: 1em; margin-right: 1em; text-decoration: none;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6z_q5L74_Deutw9suC80e8wyTex65uAr5o5lhyqRULemlZvWOaNb-Aq9yVF57vCnqLlxJeUyU498F1pl1M5HSxL4XDCIgRlJBqOA4fVl1nPFmN57RyZe0EZz7inOnF6pvRy935e9JYdio/s400/Screen+shot+2011-09-21+at+7.45.30+AM.png" style="-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 20px; background-color: white; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(204, 204, 204); box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 20px; padding: 8px; position: relative;" width="341" /></a></div>
<br style="background-color: #fefdfa; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;" />
<span style="background-color: #fefdfa; color: #333333;"><span style="font-family: inherit;">Your new framework has been added and you or the other developer can begin developing! </span></span></div>
<div>
<span style="background-color: #fefdfa; color: #333333;"><span style="font-family: inherit;"><br /></span></span></div>
<div>
<span style="background-color: #fefdfa;"><span style="color: #cc0000; font-family: inherit;"><b>Happy Coding :) </b></span></span></div>
<div>
</div>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com3tag:blogger.com,1999:blog-3208198902285046621.post-27623317359835600712012-08-10T01:35:00.001-07:002012-08-10T01:38:54.044-07:00Unit Testing And Code Coverage in Xcode 4.3 for iPhone/iPad apps<div dir="ltr" style="text-align: left;" trbidi="on">will post very soon.</div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com1tag:blogger.com,1999:blog-3208198902285046621.post-53138017714493080802012-07-23T00:33:00.001-07:002012-08-10T01:36:16.298-07:00Bluetooth programming for iOS (iPhone/iPad application)<div dir="ltr" style="text-align: left;" trbidi="on">will post very soon.</div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com0tag:blogger.com,1999:blog-3208198902285046621.post-88632628991655269872012-06-28T02:53:00.003-07:002014-03-25T04:40:36.886-07:00Handle NSLog before release<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white; color: #333333; line-height: 18px;">Go to</span><span style="background-color: white; color: #333333; line-height: 18px;"> your </span><span style="background-color: white; color: #333333; line-height: 18px;">Build settings and under the Debug configuration add a value to "Preprocessor Macros" value like: </span><span class="pln" style="background-color: #fefdfa; border: 0px; color: #333333; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;">DEBUG_MODE</span><span class="pun" style="background-color: #fefdfa; border: 0px; color: #333333; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;">=</span><span class="lit" style="background-color: #fefdfa; border: 0px; color: maroon; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;">1</span></span><br />
<div class="p1" style="background-color: #fefdfa; color: #333333; line-height: 18px;">
<div class="p1">
<div style="text-align: -webkit-auto;">
<span class="lit" style="border: 0px; color: maroon; font-family: Arial, Helvetica, sans-serif; margin: 0px; padding: 0px; text-align: left; vertical-align: baseline;"><span style="background-color: white; color: black;">Make sure you only do this for the Debug configuration and not for Beta or Release versions. Then in a common header file you can do</span><span style="background-color: white; color: black;"> something like:</span></span><br />
<span class="lit" style="border: 0px; color: maroon; font-family: Arial, Helvetica, sans-serif; margin: 0px; padding: 0px; text-align: left; vertical-align: baseline;"><span style="background-color: white; color: black;"><br />
</span></span><br />
<div style="font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;">
<span class="lit" style="border: 0px; color: maroon; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin: 0px; padding: 0px; text-align: left; vertical-align: baseline;"></span></div>
<pre class="c" style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 20px;"></pre>
<pre class="c" style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 20px;"><pre class="objc" style="background-color: #eeeeee; border: 1px solid rgb(221, 221, 221); clear: none; color: #110000; font-size: 12px; line-height: 1.333; overflow: visible; padding: 0.667em 0.917em; width: auto;"><span style="color: #6e371a; margin: 0px; padding: 0px;">#ifdef DEBUG_MODE</span>
<span style="color: #6e371a; margin: 0px; padding: 0px;">#define DLog( s, ... ) NSLog( @"<%@:(%d)> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )</span>
<span style="color: #6e371a; margin: 0px; padding: 0px;">#else</span>
<span style="color: #6e371a; margin: 0px; padding: 0px;">#define DLog( s, ... )</span>
<span style="color: #6e371a; margin: 0px; padding: 0px;">#endif</span></pre>
</pre>
<pre class="c" style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 20px;"></pre>
</div>
</div>
</div>
<span style="background-color: white; color: #333333; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"><br />
</span><br />
<span style="background-color: white; color: #333333; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;">Now instead of </span><code style="background-color: #eeeeee; border: 0px; color: #333333; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin: 0px; padding: 1px 5px; vertical-align: baseline;">NSLog</code><span style="background-color: white; color: #333333; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"> use </span><code style="background-color: #eeeeee; border: 0px; color: #333333; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin: 0px; padding: 1px 5px; vertical-align: baseline;">DLog</code><span style="background-color: white; color: #333333; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"> everywhere. When testing and debugging, you'll get debug messages. When you're ready to release a beta or final release, all those </span><code style="background-color: #eeeeee; border: 0px; color: #333333; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin: 0px; padding: 1px 5px; vertical-align: baseline;">DLog</code><span style="background-color: white; color: #333333; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"> lines automatically become empty and nothing gets emitted. This way there's no manual setting of variables or commenting of </span><code style="background-color: #eeeeee; border: 0px; color: #333333; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin: 0px; padding: 1px 5px; vertical-align: baseline;">NSLogs</code><span style="background-color: white; color: #333333; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"> required. Picking your build target takes care of it.</span></div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com3tag:blogger.com,1999:blog-3208198902285046621.post-8625326088130554572012-06-20T23:24:00.011-07:002014-03-25T04:40:52.051-07:00iPhone/iPad Technical Interview Question(FAQ) with answers(Part 3)<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div>
<i style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: small; line-height: 18px;"><u><span class="Apple-style-span" style="color: red; text-decoration: none;"><a href="http://iphonenativeapp.blogspot.in/2011/07/iphoneipad-technical-faq-with.html" style="color: #7d181e; text-decoration: none;">Prev….(Part 2)</a></span></u></i><span class="Apple-style-span" style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: medium;"> </span><br />
<br />
<div style="background-color: #fefdfa;">
<b><span style="color: #660000; font-size: large;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; line-height: 18px;">Q14. </span><span style="font-family: Times, 'Times New Roman', serif;"><span style="line-height: 18px;">What are the ways to store data localy on device ? </span></span></span></b></div>
<div style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: 13px; line-height: 18px;">
<span class="Apple-style-span" style="font-size: x-small;"><span class="Apple-style-span" style="font-size: 11px;"></span></span></div>
<div style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: 13px; line-height: 18px;">
<span class="Apple-style-span" style="font-size: x-small;"><span class="Apple-style-span" style="font-size: 11px;"></span></span></div>
<div style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: 13px; line-height: 18px;">
<span class="Apple-style-span" style="font-size: x-small;"><span class="Apple-style-span" style="font-size: 11px;"></span></span></div>
<div style="background-color: #fefdfa; margin: 0px;">
<div style="color: black; font-family: Times, 'Times New Roman', serif; font-size: 13px; line-height: 18px; margin: 0px;">
<span class="Apple-style-span" style="font-size: x-small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: x-small;"><span class="Apple-style-span" style="font-size: medium;"><b>A.</b></span></span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times, 'Times New Roman', serif;"><span style="line-height: 18px;"></span></span><br />
<div style="margin: 0px;">
<span style="font-family: Times, 'Times New Roman', serif;"><span style="line-height: 18px;">We store data localy in device through:</span></span></div>
<div style="margin: 0px;">
<ol style="text-align: left;">
<li><span style="font-family: Times, 'Times New Roman', serif;"><span style="line-height: 18px;">Plist.</span></span></li>
<span style="font-family: Times, 'Times New Roman', serif;"><span style="line-height: 18px;">
<li>NSUserDefaults.</li>
<li>SQLite.</li>
<li>CoreData.</li>
</span></span></ol>
</div>
</div>
</div>
<br />
<span style="color: #660000;"><b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; font-size: medium; line-height: 18px;">Q15. </span></b><span class="Apple-style-span" style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: medium;"><b>What is the way to store value as default in application without using nsuserdefault for the application run firts time, because first time there will be no any data in nsuserdefault.</b></span></span><br />
<span class="Apple-style-span" style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: medium;"><b>A. </b></span><br />
<span class="Apple-style-span" style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: medium;">Through Plist.</span><br />
<span class="Apple-style-span" style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: medium;"><br />
</span><br />
<span style="color: #660000;"><b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; font-size: medium; line-height: 18px;">Q16. </span></b><b style="font-family: Times, 'Times New Roman', serif; font-size: large;"> What is the significant of passing (NSDictionary *)launchOptions in application didFinishLaunchingWithOptions ? </b><b style="font-family: Times, 'Times New Roman', serif; font-size: large;">What are the options in application didFinishLaunchingWithOptions ?</b></span><br />
<span style="color: #660000; font-family: Times, 'Times New Roman', serif; font-size: medium;"><b>A.</b></span><br />
<br />
<span style="background-color: white; font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; font-size: 13px; text-align: -webkit-auto;"> </span><span style="font-family: Times, 'Times New Roman', serif;"><span style="background-color: white; text-align: -webkit-auto;">L</span><span style="background-color: white; text-align: -webkit-auto;">aunching an application by tapping its icon, an application can be launched in order to respond to a specific type of event.</span></span><br />
<br />
<div style="background-color: white; margin-bottom: 0.833em; text-align: -webkit-auto;">
<span style="font-family: Times, 'Times New Roman', serif;">For example, it could be launched in response to an incoming push notification, it could be asked to open a file, or it could be launched to handle some background event that it had requested. In all of these cases, the options dictionary passed to the<code style="color: #666666;"><a href="http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:didFinishLaunchingWithOptions:" style="color: #003366; text-decoration: none;">application:didFinishLaunchingWithOptions:</a></code> method provides information about the reason for the launch.</span></div>
<div style="background-color: white; margin-bottom: 0.833em; text-align: -webkit-auto;">
<span style="font-family: Times, 'Times New Roman', serif;">In situations where the application is already running, the methods of the application delegate are called in response to key changes.</span></div>
<div style="background-color: white; margin-bottom: 0.833em; text-align: -webkit-auto;">
<span style="font-family: Times, 'Times New Roman', serif;">There are 7 launch options key:</span></div>
<div style="background-color: white; margin-bottom: 0.833em; text-align: -webkit-auto;">
</div>
<pre class="declaration" style="font-size: 13px; margin-bottom: 1em; margin-left: 0.5em; margin-right: 0.333em;"><span style="font-family: Times, 'Times New Roman', serif;">UIApplicationLaunchOptionsURLKey;
UIApplicationLaunchOptionsSourceApplicationKey;
UIApplicationLaunchOptionsRemoteNotificationKey;
UIApplicationLaunchOptionsAnnotationKey;
UIApplicationLaunchOptionsLocalNotificationKey;
UIApplicationLaunchOptionsLocationKey;
UIApplicationLaunchOptionsNewsstandDownloadsKey;</span></pre>
<pre class="declaration" style="margin-bottom: 1em; margin-left: 0.5em; margin-right: 0.333em;"><span style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif;">For example:</span></pre>
<span class="Apple-style-span" style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif;">When you actually receive a notification, there are 2 way it can be handel in our application:</span><br />
<span class="Apple-style-span" style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif;">1. When application is not running, and user click on view button on the notification. To interpret this notification we have to implement<span style="color: #6fa8dc;"> </span></span><span style="color: #6fa8dc;">application:didFinishLaunchingWithOptions: </span>instead of <span style="color: #6fa8dc;">applicationDidFinishLaunching</span>: like this: <br />
<br />
<div class="p1">
- (<span class="s1">BOOL</span>)application:(<span class="s2">UIApplication</span> *)application didFinishLaunchingWithOptions:(<span class="s2">NSDictionary</span> *)launchOptions</div>
<div class="p1">
{</div>
<div class="p1">
<span class="s1"> NSDictionary</span><span class="s2">* userInfo = [launchOptions </span><span class="s3">valueForKey</span><span class="s2">:</span>@"UIApplicationLaunchOptionsRemoteNotificationKey"<span class="s2">];</span></div>
<div class="p2">
<span class="s1">NSDictionary</span> *payLoad= [userInfo <span class="s3">objectForKey</span>:<span class="s4">@"aps"</span>];</div>
<div class="p2">
<span class="s1">NSDictionary</span> *alertMsg = [userInfo <span class="s3">objectForKey</span>:<span class="s4">@"alert"</span>];</div>
<div class="p2">
<span class="s1">NSDictionary</span> * badgeCount = [userInfo <span class="s3">objectForKey</span>:<span class="s4">@"badge"</span>];</div>
<div class="p2">
//....do something with this.</div>
<div class="p2">
}</div>
<br />
<span class="Apple-style-span" style="background-color: #fefdfa; font-family: Times, 'Times New Roman', serif; font-size: medium;">2. And when application is already in running state, in this case application delegate receives a call to </span><span style="color: #6fa8dc;">application:didReceiveRemoteNotification:. </span>This method also receives userInfo like this:<br />
-(<span class="s1">void</span>)application:(<span class="s2">UIApplication</span> *)application didReceiveRemoteNotification:(<span class="s2">NSDictionary</span> *)userInfo<br />
<div class="p1">
{</div>
<div class="p1">
</div>
<div class="p2">
<span class="s1">NSDictionary</span> *payLoad= [userInfo <span class="s3">objectForKey</span>:<span class="s4">@"aps"</span>];</div>
<div class="p2">
<span class="s1">NSDictionary</span> *alertMsg = [userInfo <span class="s3">objectForKey</span>:<span class="s4">@"alert"</span>];</div>
<div class="p2">
<span class="s1">NSDictionary</span> * badgeCount = [userInfo <span class="s3">objectForKey</span>:<span class="s4">@"badge"</span>];</div>
<div class="p2">
//....do something with this.</div>
<br />
<div class="p1">
}</div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="color: #660000; font-size: large;"><b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; line-height: 18px;">Q17. </span></b><b style="font-family: Times, 'Times New Roman', serif;"> </b><b>What are the design patterns in iOS ?</b></span></div>
<div class="p1">
<b>A.</b></div>
<div class="p1">
<span style="color: #cc0000;"><i><a href="http://iphonenativeapp.blogspot.in/2011/03/iphoneipad-design-patterns.html">Press here....</a></i></span></div>
<br />
<span style="color: #660000; font-size: large;"><b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; line-height: 18px;">Q18. </span></b><b style="font-family: Times, 'Times New Roman', serif;"> </b><b>Difference between Cocoa and Cocoa touch ?</b></span><br />
<br />
<div class="p1">
<b>A. </b></div>
<div class="p1">
<span style="color: #cc0000;"><i><a href="http://iphonenativeapp.blogspot.in/2011/02/difference-between-cocoacocoa-touch-and.html">Press here....</a></i></span></div>
<br />
<span style="color: #660000; font-size: large;"><b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; line-height: 18px;">Q19. </span></b><b style="font-family: Times, 'Times New Roman', serif;"> </b><b>What is KVC and KVO ?</b></span><br />
<br />
<div class="p1">
<b>A. </b></div>
<span style="color: #cc0000;"><i><a href="http://iphonenativeapp.blogspot.in/2011/03/iphoneipad-design-patterns.html">Its a design pattern follow by iOS. Its a.......</a></i></span><br />
<br />
<span style="color: #660000; font-size: large;"><b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; line-height: 18px;">Q20. </span></b><b style="font-family: Times, 'Times New Roman', serif;"> </b><b>What architecture iOS follows ?</b></span><br />
<br />
<div class="p1">
<b>A. </b></div>
<div class="p1">
<i><span style="color: #cc0000;"><a href="http://iphonenativeapp.blogspot.in/2011/03/mvc-architecture-of-iphone-app.html">MVC......</a></span></i></div>
<br />
<br />
<span style="color: #660000; font-size: large;"><b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; line-height: 18px;">Q21. </span></b><b style="font-family: Times, 'Times New Roman', serif;"> </b><b>What are collection methods ?</b></span><br />
<br />
<div class="p1">
<b>A. </b></div>
<div class="p1">
<span style="font-family: Times, 'Times New Roman', serif;"><span style="background-color: white; text-align: -webkit-auto;">For objects that manage a <span style="white-space: nowrap;">collection </span></span><span style="background-color: white; text-align: -webkit-auto;">of objects (each called an element of that collection).</span></span></div>
<div class="p1">
<div style="text-align: -webkit-auto;">
<span style="font-family: Times, 'Times New Roman', serif;">For example: </span><code style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 13px;">- (void)add</code><em style="font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; font-size: 13px;">Element</em><code style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 13px;">:(</code><em style="font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; font-size: 13px;">elementType</em><code style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 13px;">)</code><em style="font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; font-size: 13px;">anObj</em><code style="color: #666666; font-family: Courier, Consolas, monospace; font-size: 13px;">;</code></div>
<div style="background-color: white; font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; font-size: 13px; margin-bottom: 0.833em; text-align: -webkit-auto;">
<code style="color: #666666; font-family: Courier, Consolas, monospace;"> - (void)remove</code><em>Element</em><code style="color: #666666; font-family: Courier, Consolas, monospace;">:(</code><em>elementType</em><code style="color: #666666; font-family: Courier, Consolas, monospace;">)</code><em>anObj</em><code style="color: #666666; font-family: Courier, Consolas, monospace;">;</code></div>
<div style="background-color: white; font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; font-size: 13px; margin-bottom: 0.833em; text-align: -webkit-auto;">
<code style="color: #666666; font-family: Courier, Consolas, monospace;"> - (NSArray *)</code><em>elements</em><code style="color: #666666; font-family: Courier, Consolas, monospace;">;</code></div>
<br />
<b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; font-size: medium; line-height: 18px;"><br />
</span></b><br />
<span style="color: #660000; font-size: large;"><b><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif; line-height: 18px;">Q22. </span></b><b style="font-family: Times, 'Times New Roman', serif;"> </b><b>How to handle NSLog before release ?</b></span><br />
<br />
<div class="p1">
<b>A. </b></div>
<div class="p1">
<div style="text-align: -webkit-auto;">
<div style="text-align: left;">
<span style="color: #cc0000; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;"><span style="font-size: 14px; line-height: 18px;"><i><a href="http://iphonenativeapp.blogspot.in/2012/06/handle-nslog-before-release.html">Press here....</a></i></span></span></div>
</div>
</div>
</div>
<span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"><br />
</span><br />
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-family: Menlo; font-size: small;"><span class="Apple-style-span"><i><span style="color: #a64d79;">All The Best :)</span></i></span></span></div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="color: #d000a2; font-family: Menlo; font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><i style="color: red;"><br />
</i></span></span></div>
<i style="color: #38761d; font-family: Times, 'Times New Roman', serif; font-size: 11px;"><span class="Apple-style-span" style="font-size: large;">WILL BE CONTINUE… :<br />)</span></i></div>
</div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com1tag:blogger.com,1999:blog-3208198902285046621.post-74723199747855334062011-11-23T23:22:00.000-08:002011-11-23T23:22:47.366-08:00NSCountedSet (grouping array objects with their total number of counts)<div dir="ltr" style="text-align: left;" trbidi="on"><b>This class gives the count of an object present in an array.</b><br />
<br />
<i>For example: If we have an array named myArray with objects: (AA,HH,TT,SS,AA,KK,TT,TT,XX,HH,HH,HH,SS,SS)</i><br />
<br />
Then to get total no of count of every object only write this code:<br />
<br />
<br />
<div class="p1"><i><span class="s1"> </span><span class="Apple-style-span" style="color: #674ea7;">NSCountedSet<span class="s1"> * set = [[</span>NSCountedSet<span class="s1"> </span><span class="s2">alloc</span><span class="s1">] </span><span class="s2">initWithArray</span><span class="s1">:</span><span class="s1"> myArray];</span></span></i></div><div class="p2"><i><span class="Apple-style-span" style="color: #674ea7;"> <span class="s4">for</span> (<span class="s4">id</span> obj <span class="s4">in</span> set)</span></i></div><div class="p2"><i><span class="Apple-style-span" style="color: #674ea7;"> {</span></i></div><div class="p2"><i><span class="Apple-style-span" style="color: #674ea7;"> <span class="s2">NSLog</span>(<span class="s5">@"%d - %@"</span>, [set <span class="s2">countForObject</span>:obj], obj);</span></i></div><div class="p3"><i><span class="Apple-style-span" style="color: #674ea7;"><span class="s1"> </span>}</span></i></div><div class="p3"><br />
</div><div class="p3">Now you can use this [set <span class="s2">countForObject</span>:obj] and obj according to your requirement. </div><div class="p3"><br />
</div><div class="p3"><b><span class="Apple-style-span" style="color: #cc0000;">For example it you want to display this in a table with non-repeated objects and with count you can assign above value in a dictionary like this: </span></b></div><div class="p3"><br />
</div><div class="p3"></div><div class="p1"><i><span class="Apple-style-span" style="color: #674ea7;"><span class="s1">NSMutableDictionary *</span><span class="s2">dirCount</span><span class="s1"> = [[</span>NSMutableDictionary<span class="s1"> </span><span class="s3">alloc</span><span class="s1">]</span><span class="s3">init</span><span class="s1">];</span></span></i></div><div class="p1"><span class="s1"><i><span class="Apple-style-span" style="color: #674ea7;"> </span></i></span></div><div class="p1"><i><span class="Apple-style-span" style="color: #674ea7;">NSCountedSet<span class="s1"> * set = [[</span>NSCountedSet<span class="s1"> </span><span class="s2">alloc</span><span class="s1">] </span><span class="s2">initWithArray</span><span class="s1">:</span><span class="s3">arrForTypeGroup</span><span class="s1">];</span></span></i></div><i><span class="Apple-style-span" style="color: #674ea7;"> </span></i><br />
<div class="p2"><i><span class="Apple-style-span" style="color: #674ea7;"> <span class="s4">for</span> (<span class="s4">id</span> obj <span class="s4">in</span> set)</span></i></div><div class="p2"><i><span class="Apple-style-span" style="color: #674ea7;"> {</span></i></div><div class="p2"><i><span class="Apple-style-span" style="color: #674ea7;"> <span class="s2">NSLog</span>(<span class="s5">@"%d - %@"</span>, [set <span class="s2">countForObject</span>:obj], obj);</span></i></div><div class="p3"><i><span class="Apple-style-span" style="color: #674ea7;"><span class="s1"> [</span><span class="s3">dirCount</span><span class="s1"> </span>setObject<span class="s1">:[</span><span class="s6">NSNumber</span><span class="s1"> </span>numberWithInt<span class="s1">:[set </span>countForObject<span class="s1">:obj]] </span>forKey<span class="s1">:obj];</span></span></i></div><div class="p2"><i><span class="Apple-style-span" style="color: #674ea7;"> }</span></i></div><br />
<br />
<div class="p3"><i><span class="Apple-style-span" style="color: #674ea7;"> <span class="s2">NSLog</span>(<span class="s5">@"</span><span class="s5">Output: %@"</span>, dirCount);</span></i></div><div class="p3"><br />
</div><div class="p3">Now use this dictionary to display in table.</div><div class="p3"><br />
</div><div class="p3"><b><span class="Apple-style-span" style="color: #cc0000;">Happy Coding :)</span></b></div></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com1tag:blogger.com,1999:blog-3208198902285046621.post-25422527373160452102011-11-13T05:24:00.000-08:002011-11-13T05:24:14.796-08:00PhoneGap<div dir="ltr" style="text-align: left;" trbidi="on"><br />
<div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2c2c29; font-family: Tahoma; margin-bottom: 15px; margin-top: 1px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; vertical-align: baseline;">PhoneGap lets developers use web technologies to develop an iPhone app. Apple has a web browser object developers can use to display HTML content. Usually developers use it to display HTML from a remote web server. What PhoneGap does is let developers create their user interface using HTML in the web browser object instead of the built-in user interface objects (buttons, lists, text fields, etc).</div><div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2c2c29; font-family: Tahoma; margin-bottom: 15px; margin-top: 1px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; vertical-align: baseline;">Normally, this would be very limiting, since web browsers can't access most of the services a smartphone provides - what PhoneGap does is "bridge the gap" (hence the name) between the smartphone and the web browser by exposing smartphone services using JavaScript.</div><div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2c2c29; font-family: Tahoma; margin-bottom: 15px; margin-top: 1px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; vertical-align: baseline;">For developers that don't have experience with a smartphone's native development tools, using PhoneGap lets them leverage their knowledge of HTML and JavaScript to make an app. PhoneGap also makes it easier to support multiple smartphone platforms because much of the HTML and JavaScript can be reused between platforms which have this web browser object. (iPhone, Android, the newest Blackberry phones, and Palm webOS phones).</div><div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2c2c29; font-family: Tahoma; margin-bottom: 15px; margin-top: 1px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; vertical-align: baseline;">To clarify further, the HTML and JavaScript you put into a the web browser object in a PhoneGap app isn't served by a web server over the Internet - it is embedded into the app. That doesn't mean your app is forever limited to what is put into it when it ships - just as they would otherwise, the developer integrates the PhoneGap screens with your remote data sources (typically via JSON web services) - in this case the PhoneGap screens are like templates. If changes to the template are needed, the developer updates them and submits an updated app to the App Store. This is no different than for apps that don't use PhoneGap - any changes to apps must be re-submitted to the App Store before they can appear on people's phones.</div><div class="cat_tags clear" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://jim.roepcke.com/blog/wp-content/themes/lightword/images/tags_category.png); background-origin: initial; background-repeat: no-repeat no-repeat; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #2c2c29; font-family: Tahoma; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 10px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 10px; padding-right: 0px; padding-top: 8px; vertical-align: baseline; width: 540px;"></div></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com0tag:blogger.com,1999:blog-3208198902285046621.post-32958227410028992262011-11-12T12:26:00.000-08:002011-11-12T23:27:48.278-08:00Agile Software Development Process<div dir="ltr" style="text-align: left;" trbidi="on">Hello,<br />
In my new company, we follows Agile process for software development, and it is my first experience with Agile software development process. And it is really awesome process because in this process every thing is pre planned what to deliver when and no worry about whole software delivery :)<br />
<br />
<span class="Apple-style-span" style="color: #990000;">What is Agile software development process ?</span><br />
<br />
Agile Process is basically based on iteration. In this process after requirement analysis it is decided that when we will deliver which iteration, and what will deliver in which iteration.<br />
<br />
<span class="Apple-style-span" style="color: #990000;">Step by Step Agile Development Process :</span><br />
<br />
<br />
<ol style="text-align: left;"><li>Requirement Analysis.</li>
<li>Plan All iteration release date upto the final delivery.</li>
<li>Decide which software feature will be deliver in which iteration.</li>
<li>Before 2 days of 1st iteration final release we release our 1st iteration for QA&Testing.</li>
<li>In these two day we resolve all issues and finally release 1st iteration.</li>
<li>Now we proceed for 2nd iteration.</li>
<li>This time we have to release second iteration with all resolved issue of iteration 1.</li>
<li>The above process is repeated upto the final release of application.</li>
</ol></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com0tag:blogger.com,1999:blog-3208198902285046621.post-55523258052291276992011-11-12T11:50:00.000-08:002011-11-12T11:50:15.138-08:00iCloud implementation<div dir="ltr" style="text-align: left;" trbidi="on"> <!--StartFragment--><span class="Apple-style-span" style="color: red;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.5pt; text-transform: uppercase; vertical-align: baseline;">Step by step method to implement </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.5pt; text-transform: uppercase; vertical-align: baseline;">icloud</span></span><!--EndFragment--> <br />
<span style="font-family: Arial; text-indent: -36px;">•</span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">Make</span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"> sure </span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">your</span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">device</span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">is</span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">running </span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">iOS</span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"> 5</span><span style="font-family: 'Arial Narrow'; font-weight: bold; letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">.</span><br />
<div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Arial;">•</span><span style="font-weight: bold; letter-spacing: 0.3pt; vertical-align: baseline;">Turn</span><span style="font-weight: bold; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-weight: bold; letter-spacing: 0.3pt; vertical-align: baseline;">on </span><span style="font-weight: bold; letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="font-weight: bold; letter-spacing: 0.3pt; vertical-align: baseline;">.</span></div><div class="O1" style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.81in; margin-top: 4.08pt; text-indent: -0.31in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial;">•</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">When you turn on a new </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iOS</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> device or after you’ve completed the update to </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iOS</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> 5, follow the onscreen instructions to activate your device and set up </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">.</span></i></div><div class="O1" style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.81in; margin-top: 4.08pt; text-indent: -0.31in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial;">•</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">If you skipped the setup process or want to change your </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> settings, tap the Settings icon on the Home screen and select </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">.</span></i></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.32pt; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Arial;">•</span><span style="font-weight: bold; letter-spacing: 0.3pt; vertical-align: baseline;">Customize your settings.</span></div><div class="O1" style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.81in; margin-top: 4.32pt; text-indent: -0.31in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial;">•</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">Tap </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">the Settings icon and select </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">. Tap the On/Off switches to enable individual </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> services, including Photo Stream, Documents, Find My iPhone, and more.</span></i></div><div class="O1" style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.81in; margin-top: 4.32pt; text-indent: -0.31in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial;">•</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">To enable Backup, tap Storage & Backup, then switch on </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> Backup</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">.</span></i></div><div class="O1" style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.81in; margin-top: 4.32pt; text-indent: -0.31in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial; text-indent: -36px;">•</span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">Now </span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">go to the Provisioning Portal to enable </span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"> storage for your </span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">iOS</span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">application. </span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">Enabling </span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">this feature requires that you have an updated provisioning profile on your development systems. </span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">Xcode</span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"> 4 handles this step for you automatically</span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">.</span></i></div><div class="O1" style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.81in; margin-top: 4.32pt; text-indent: -0.31in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial; text-indent: -36px;">•</span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">Add </span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">a new Entitlements file to your application and use it to configure the </span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"> features for your application uses. Set the keys and values like this:</span></i></div><div class="O1" style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0.81in; margin-top: 4.32pt; text-indent: -0.31in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; text-indent: -36px; vertical-align: baseline;"><i><br />
</i></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1_O4ASs6rOmWj3I3BHRk6w7FaZdLtFal3Oc4IEDf4EbweKXTUXVJaGYZZnqIvzNXatsD47prwiwgmRfv4_GYuZiRsyE962LYzHW4jaS3qHap1XEagGA29sfmsSP_xoaKoWIYZr_NTsP4/s1600/Screen+Shot+2011-10-14+at+11.10.14+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="color: black;"><i><img border="0" height="76" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1_O4ASs6rOmWj3I3BHRk6w7FaZdLtFal3Oc4IEDf4EbweKXTUXVJaGYZZnqIvzNXatsD47prwiwgmRfv4_GYuZiRsyE962LYzHW4jaS3qHap1XEagGA29sfmsSP_xoaKoWIYZr_NTsP4/s320/Screen+Shot+2011-10-14+at+11.10.14+AM.png" width="320" /></i></span></a></div><div class="separator" style="clear: both; text-align: center;"><i><br />
</i></div><div class="separator" style="clear: both; text-align: center;"> <!--StartFragment--> </div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial;"> •</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">Now we have to do Entitlements settings. Go to your target and select Summary tab and do the settings so that it will look like this:</span></i></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"><i><br />
</i></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL5NCtHIPFRSjy5at5_xjaODuKEyiJtW6-7_o4uPo5vUW1-jnVgYuPc6iULRpk4xhbRLQS0qotfUm0D1IYimtxbMvFXul9fpXDEMO_xIt_LhzjnKMfVE3jk93haHl3unEUS5yYSUz8w-U/s1600/Screen+Shot+2011-10-14+at+11.18.29+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="color: black;"><i><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL5NCtHIPFRSjy5at5_xjaODuKEyiJtW6-7_o4uPo5vUW1-jnVgYuPc6iULRpk4xhbRLQS0qotfUm0D1IYimtxbMvFXul9fpXDEMO_xIt_LhzjnKMfVE3jk93haHl3unEUS5yYSUz8w-U/s320/Screen+Shot+2011-10-14+at+11.18.29+AM.png" width="320" /></i></span></a></div><div class="separator" style="clear: both; text-align: center;"><i><br />
</i></div><div class="separator" style="clear: both; text-align: center;"> <!--StartFragment--> </div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial;"> •</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">Now we have to do some setup for bundle settings. For this add a new setting bundle file under </span></i></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial;"> •</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">Resource option in your project , it will have extension .bundle. Now this file contain a </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">Root.plist</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> file</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">.</span></i></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><i><span style="font-family: Arial;"> •</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">In </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">Root.plist</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> you will get 2 key, one is Preference Items with 4 items and another is Strings Filename. Delete all the items under Preference Items and setup it like this:</span></i></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"><br />
</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigT6RtjyTZoQVlEJuGkG6AyT99iwfQVClm0Nia6KDBDjv2-KUwR0KjcJWYu_RQeoo_YAMzPfB6GuKlhNGlybHgiBqOy12ICy0CXnCD3I-EV09fXeY924Gw-vz1DpR7dgD3O9kMbnWIgHA/s1600/Screen+Shot+2011-10-14+at+11.28.06+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="color: black;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigT6RtjyTZoQVlEJuGkG6AyT99iwfQVClm0Nia6KDBDjv2-KUwR0KjcJWYu_RQeoo_YAMzPfB6GuKlhNGlybHgiBqOy12ICy0CXnCD3I-EV09fXeY924Gw-vz1DpR7dgD3O9kMbnWIgHA/s320/Screen+Shot+2011-10-14+at+11.28.06+AM.png" width="320" /></span></a></div><div class="separator" style="clear: both; text-align: center;"> <!--StartFragment--> </div><div style="margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-align: left; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><b><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">Now come on code, Go to your </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">appDelegate.m</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> file and write these line in </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">didFinishLaunchingWithOptions</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> method :</span></b></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">[[</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSUserDefaults</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">standardUserDefaults</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">] </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">setValue:@"YES</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">" </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">forKey:@"enableiCloud</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">"];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSFileManager</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> *</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">fileManager</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> = [</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSFileManager</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">defaultManager</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> NSURL *</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">iCloudURL</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> = [</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">fileManager</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">URLForUbiquityContainerIdentifier</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">:@"LCRABX9EHK.com.sapnasolutions.iCloudTest"];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> BOOL check = [</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">fileManager</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">isUbiquitousItemAtURL:iCloudURL</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSUbiquitousKeyValueStore</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> *</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">cloudStore</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> = [</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSUbiquitousKeyValueStore</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">defaultStore</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> [</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">cloudStore</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">setString</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">:[</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">iCloudURL</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">absoluteString</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">] </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">forKey</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">:@"</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">iCloudURL</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">"];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> [</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">cloudStore</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> synchronize]; // Important as it stores the values you set before on </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><br />
</div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> <!--StartFragment--> </span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;">// Get the path </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">og</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> file/document to be send on </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> from document directory.</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;">NSArray</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> *paths = </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">NSSearchPathForDirectoriesInDomains</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">(</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">NSDocumentDirectory</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">, </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">NSUserDomainMask</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">, YES);</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">NSString</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> *</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">documentsDirectory</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> = [paths objectAtIndex:0];</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">NSString</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> *</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">writableDBPath</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> = [</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">documentsDirectory</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">stringByAppendingPathComponent</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">:@"</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">saved.png</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">"];</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;">BOOL </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">existFile</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> = [</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">fileManager</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">fileExistsAtPath:writableDBPath</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">];</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;">// If the file exist then send it on </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">.</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> if (</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">existFile</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> {</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">NSError</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> *</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">errorOut</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">=</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">nil</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">;</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> BOOL success =[</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">fileManager</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">setUbiquitous:YES</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">itemAtURL</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">:[NSURL </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">URLWithString:writableDBPath</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">] </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">destinationURL:iCloudURL</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> error: &</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">errorOut</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">];</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">NSLog</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">(@"</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">Error</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">: %@", </span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">errorOut</span><span style="letter-spacing: 0.3pt; vertical-align: baseline;">);</span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> } </span></div><div style="direction: ltr; font-family: 'Arial Narrow'; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="letter-spacing: 0.3pt; vertical-align: baseline;"> </span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"> <!--StartFragment--> <div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">// Fire Query to check whether the </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">perticular</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> file is present on </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">iCloud</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> or </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">not.</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">query </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">= [[</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSMetadataQuery</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">alloc</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">] </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">init</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">[</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">query</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">setSearchScopes</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">:[</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSArray</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">arrayWithObjects:NSMetadataQueryUbiquitousDataScope</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">, </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSMetadataQueryUbiquitousDocumentsScope</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">, </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">nil</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">]];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">[query </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">setPredicate</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">:[</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSPredicate</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">predicateWithFormat</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">:@"</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">kMDItemFSName</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> LIKE '*.</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">png</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">'"]];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">[[</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSNotificationCenter</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">defaultCenter</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">] </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">addObserver:self</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> selector:@selector(</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">queryHandler</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">:) </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">name:NSMetadataQueryDidFinishGatheringNotification</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">object:query</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">]; </span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">[query </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">startQuery</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">];</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><br />
</div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"><br />
</span></div><!--StartFragment--> <div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">- </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">(void)</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">queryHandler</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">: (</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSNotification</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> *) </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">inNotification</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">{</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">NSLog</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">(@"The number of results: %</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">i</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">", (</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">int</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">)[query </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">resultCount</span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">])</span></div><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0in; margin-top: 4.08pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;"> </span><span style="font-family: 'Arial Narrow'; letter-spacing: 0.3pt; vertical-align: baseline;">}</span></div></div><br />
<br />
<br />
<br />
<div class="O1" style="direction: ltr; margin-bottom: 6pt; margin-left: 0.81in; margin-top: 4.32pt; text-indent: -0.31in; unicode-bidi: embed; word-break: normal;"><div style="direction: ltr; margin-bottom: 6pt; margin-left: 0.38in; margin-top: 4.08pt; text-indent: -0.38in; unicode-bidi: embed; word-break: normal;"><span class="Apple-style-span" style="font-family: Arial;"><br />
</span></div><!--EndFragment--></div><!--EndFragment--></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com0tag:blogger.com,1999:blog-3208198902285046621.post-89083969470258446052011-11-12T11:38:00.000-08:002011-11-12T11:38:05.580-08:00ARC(Automatic Reference Counting)<div dir="ltr" style="text-align: left;" trbidi="on"><br />
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.56in; margin-top: 6pt; text-indent: -0.56in; unicode-bidi: embed; word-break: normal;"><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="text-align: left;"><span class="Apple-style-span" style="font-family: Constantia; font-style: italic;"><br />
</span></div><div class="p1" style="text-align: left;"><i>Automatic Reference Counting (ARC) does:</i></div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><span class="s1">1.</span>Memory management, job of the compiler.</div><div class="p1" style="text-align: left;"><span class="s1">2.</span>Never need to type retain or release again and again.</div><div class="p1" style="text-align: left;"><span class="s1">3.</span>Reducing crashes and memory leaks.</div><div class="p1" style="text-align: left;"><span class="s1">4.</span>Releases each object the instant, if it is no longer used.</div><div class="p1" style="text-align: left;"><span class="s1">5.</span>Apps run as fast as ever, with predictable, smooth performance.</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;">Before ARC, we had to manually retain/release/autorelease objects to ensure they would “stick around” for as long as you needed them. Forgetting to send retain to an object, or releasing it too many times would cause your app to leak memory or crash.</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;">In Xcode 4.2, in addition to syntax checking as you type, the new Apple LLVM compiler makes it possible to offload the burden of manual memory management to the compiler, introspecting your code to decide when to release objects. </div><div class="p2" style="text-align: left;"><br />
</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><i><span class="Apple-style-span" style="color: #cc0000;">Apple’s documentation describes ARC as follows:</span></i></div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><i>“Automatic Reference Counting (ARC) is a compiler-level feature that simplifies the process of managing object lifetimes (memory management) in Cocoa applications.”</i></div><div class="p2" style="text-align: left;"><br />
</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><b><span class="Apple-style-span" style="color: #cc0000;">Before ARC, we had to write:</span></b></div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><b>NSObject</b> *obj = [[<b>NSObject</b> alloc] init];</div><div class="p1" style="text-align: left;">// do some stuff</div><div class="p1" style="text-align: left;">[obj release]; </div><div class="p3" style="text-align: left;">—</div><div class="p1" style="text-align: left;">Or if we are using autorelease then we had to write:</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;">-(<b>NSObject</b>*) someMethod {</div><div class="p1" style="text-align: left;"> <b>NSObject</b> *obj = [[[<b>NSObject</b> alloc] init] autorelease];</div><div class="p1" style="text-align: left;"> <b>return</b> obj; // will be deallocated by autorelease pool later</div><div class="p1" style="text-align: left;">} </div><div class="p2" style="text-align: left;"><br />
</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><span class="Apple-style-span" style="color: #cc0000;">But with ARC enabled we have to write only :</span></div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><b><i>NSObject</i></b><i> *obj = [[</i><b><i>NSObject</i></b><i> alloc] init];</i></div><div class="p1" style="text-align: left;"><i>// do some stuff </i></div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;">The ARC pre-compilation step will auto-magically turn it into this:</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><b><i>NSObject</i></b><i> *obj = [[</i><b><i>NSObject</i></b><i> alloc] init];</i></div><div class="p1" style="text-align: left;"><i>// do some stuff</i></div><div class="p1" style="text-align: left;"><i>[obj release]; // **Added by ARC** </i></div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;"><span class="s2"><b><span class="Apple-style-span" style="color: #cc0000;">How Automatic Reference Counting Works</span></b></span></div><div class="p2" style="text-align: left;"><br />
</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;">ARC is a pre-compilation step that adds retain/release/autorelease statements to your code for you.</div><div class="p2" style="text-align: left;"><br />
</div><div class="p1" style="text-align: left;">This is not a Garbage Collection, and reference counted memory has not disappeared, it has simply been automated. It may sound like a bit of an after thought, but considering how many features in Objective-C are implemented by pre-processing source files before compiling, ARC is really par for the course.</div><div class="p2" style="text-align: left;"><br />
</div><br />
<div class="separator" style="clear: both; text-align: center;"><span class="Apple-style-span" style="clear: left; color: black; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6xv4ZxzwP7aEmq4ypNWpcQpJ6tOX6u92Nd-gg0C8mEbkg45b2vvwE7pkoXPr8BiNW9TVzAOJDl5nZ5CuaQq5D2uVEnRxAvQGC8nG-J28dhkRXq9PauvbQ3B8HhttA3zLOo7Ib8CFVSjg/s400/11.png" width="400" /></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><br />
</div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><br />
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><br />
<div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="font-family: 'Wingdings 2';"></span></div></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.56in; margin-top: 6pt; text-align: left; text-indent: -0.56in; unicode-bidi: embed; word-break: normal;"><span class="Apple-style-span" style="color: #cc0000;"><span style="font-family: Constantia; font-weight: bold; letter-spacing: -1pt; vertical-align: baseline;"> Enabling</span><span style="font-family: Constantia; font-weight: bold; letter-spacing: -1pt; vertical-align: baseline;"> ARC in </span><span style="font-family: Constantia; font-weight: bold; letter-spacing: -1pt; vertical-align: baseline;">Your</span></span><span style="font-family: Constantia; font-weight: bold; letter-spacing: -1pt; vertical-align: baseline;"><span class="Apple-style-span" style="color: #cc0000;"> Project</span><br />
</span> </div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.56in; margin-top: 6pt; text-indent: -0.56in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"></span><br />
<div style="direction: ltr; font-family: Constantia; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><br />
</span></div><div style="direction: ltr; font-family: Constantia; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;">To enable ARC simply set the Objective-C Automatic Reference Counting option in your Xcode project’s Build Settings to YES. Behind the scenes this sets the -fobjc-arc compiler flag that enables ARC.</span></div><div style="direction: ltr; font-family: Constantia; font-weight: bold; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; font-family: Constantia; font-weight: bold; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; font-family: Constantia; font-weight: bold; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span></span></div><div class="separator" style="clear: both; font-family: Constantia; font-weight: bold; letter-spacing: -1pt; text-align: center;"><span style="vertical-align: baseline;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdeWRkIk07KJGNRbxyF6zQDtk8C2LsJdvduuWvDsQhfTSncm-JvCdLFVRn-j2s3fjjRaKA2Oej4wbWE4L44axotzMzE7STbjjZ236dwPFpMJMZpPb1dOr0dHjwndiCCeKw68AEqVutV5I/s1600/22.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdeWRkIk07KJGNRbxyF6zQDtk8C2LsJdvduuWvDsQhfTSncm-JvCdLFVRn-j2s3fjjRaKA2Oej4wbWE4L44axotzMzE7STbjjZ236dwPFpMJMZpPb1dOr0dHjwndiCCeKw68AEqVutV5I/s400/22.png" width="400" /></a></span></div><div style="direction: ltr; font-family: Constantia; font-weight: bold; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: 'Wingdings 2';"><br />
</span></span></div><div style="direction: ltr; font-family: Constantia; font-weight: bold; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: 'Wingdings 2';"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><div style="text-align: left;"><span style="vertical-align: baseline;"><span class="Apple-style-span" style="font-family: Constantia; font-weight: bold; letter-spacing: -1px;"><br />
</span></span></div><span style="vertical-align: baseline;"><span style="vertical-align: baseline;"></span></span><br />
<div style="text-align: left;"><span style="vertical-align: baseline;"><span style="vertical-align: baseline;"><span class="Apple-style-span" style="font-family: Constantia; font-weight: bold; letter-spacing: -1px;"><br />
</span></span></span></div><span style="vertical-align: baseline;"><span style="vertical-align: baseline;"><div style="text-align: left;"><span class="Apple-style-span" style="font-family: Constantia; font-weight: bold; letter-spacing: -1px;"><br />
</span></div></span><span style="vertical-align: baseline;"><div style="text-align: left;"><span class="Apple-style-span" style="font-family: Constantia; font-weight: bold; letter-spacing: -1px;"><br />
</span></div></span><span style="vertical-align: baseline;"><div style="text-align: left;"><span class="Apple-style-span" style="font-family: Constantia; font-weight: bold; letter-spacing: -1px;"><br />
</span></div></span><span style="vertical-align: baseline;"><div style="text-align: left;"><span style="font-family: Constantia; letter-spacing: -1pt; vertical-align: baseline;">Including </span><span style="font-family: Constantia; letter-spacing: -1pt; vertical-align: baseline;">Code that is not ARC Compliant</span></div></span> </span></div><div style="direction: ltr; font-family: Constantia; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><br />
</span></span></div><div style="direction: ltr; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"> </span></span><br />
<div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>According to Apple’s documentation: “ARC interoperates with manual reference counting code on a per-file basis. If you want to continue using manual reference counting for some files, you can do so.”</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>This means some files can use ARC and some files can be spared from it’s magical grasp. Here are the steps for bulk excluding files from ARC at compile time. At the time of writing, many popular libraries are not ARC ready, to get around this follow these steps:</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Click on your Project in the Xcode project tree</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Click on the Target</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Select the Build Phases tab</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Expand the Compile Sources section</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Select one or more files you want to exclude from ARC</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Press the return key</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Type -fno-objc-arc</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Press the return key again</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span>Each file selected now has a -fno-objc-arc compiler flag set and will be excluded from ARC</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><br />
</span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span class="Apple-style-span" style="color: #cc0000;"><b>Migrating Existing Projects to ARC</b></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><br />
</span></span></span><br />
<span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;">Xcode 4.2 provides a conversion tool that migrates existing code to ARC, and helps you manually convert code that cannot be automatically migrated.</span></span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-style: italic; text-indent: -28px;"><br />
</span><br />
<div style="text-indent: 0px;"><span style="font-size: large; text-indent: -28px;">1.</span><span style="font-style: italic; text-indent: -28px;"> Open your non-ARC compliant project and go to Edit > Refactor > Convert to Objective-C ARC</span><span style="font-style: italic; text-indent: -28px;">.</span></div></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-style: italic;"><br />
</span></span></span></span></div><div class="separator" style="clear: both; font-family: Constantia; text-align: center;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixtSGJ_rVe5ggC77g3UoBCtKSl6y0XtEZzdLHEy1T196d6gDk3ioEJ0GwC_N-aqc9PRJkdAa2tAeu6ctrMkJfjHBHcbSfdBsZUKAI2nyGTk4XqE6F4G_w4Wlxp0gU_GO4GMPZCb0Cb0hc/s1600/1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixtSGJ_rVe5ggC77g3UoBCtKSl6y0XtEZzdLHEy1T196d6gDk3ioEJ0GwC_N-aqc9PRJkdAa2tAeu6ctrMkJfjHBHcbSfdBsZUKAI2nyGTk4XqE6F4G_w4Wlxp0gU_GO4GMPZCb0Cb0hc/s400/1.png" width="400" /></a></span></span></span></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';">—</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="font-family: Constantia; font-style: italic;"><span class="Apple-style-span" style="font-size: large;">2. </span>Select the build targets and contained files to convert (you exclude files in </span><span style="font-family: Constantia; font-style: italic;">laters</span><span style="font-family: Constantia; font-style: italic;"> steps too)</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span class="Apple-style-span" style="font-family: 'Wingdings 2';"><br />
</span></div><div class="separator" style="clear: both; text-align: center;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCu65t_IwcrysVosMj1p_ee2IPno7mR7q-D3_F2aLoku3_Wv-ROJd7Ug0m0ov2tXflr2IryVLXtqyThqZRhSMMHNrM_TYbBnLyGNtENUqIUQChzFEny0Da8BC07Wcu8HZHzEAHXeBAHFA/s1600/33.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCu65t_IwcrysVosMj1p_ee2IPno7mR7q-D3_F2aLoku3_Wv-ROJd7Ug0m0ov2tXflr2IryVLXtqyThqZRhSMMHNrM_TYbBnLyGNtENUqIUQChzFEny0Da8BC07Wcu8HZHzEAHXeBAHFA/s400/33.png" width="400" /></a></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';"><br />
</span></span></span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-align: left; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="font-family: 'Wingdings 2';"><br />
</span></span></span></span></div></div><span style="vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><span style="letter-spacing: -1pt; vertical-align: baseline;"><br />
<div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; font-family: Constantia; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div></span></span></span></div></div></div><div style="direction: ltr; letter-spacing: -1pt; margin-bottom: 0pt; margin-left: 0.3in; margin-top: 6pt; text-indent: -0.3in; unicode-bidi: embed; word-break: normal;"><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia; font-style: italic;"><span class="Apple-style-span" style="font-size: large;">3.</span> Run </span><span style="font-family: Constantia; font-style: italic;">Precheck</span><span style="font-family: Constantia; font-style: italic;"> and press next</span><span style="font-family: Constantia; font-style: italic;">.</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div class="separator" style="clear: both; text-align: center;"><span style="vertical-align: baseline;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_hen2KLZpI8vPWLKKEAKO7H2Mco-Acy-qkNaSGaoKgxnkgHZzE9yEKMW5VZ-wNEVdLRqHPiVwWs_W6hLZGzdB1yAPMZXc6R_ckGmTj5-k9cGzslxJV0n2zRn6vaOEw4rlF8N969W1BBs/s1600/3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_hen2KLZpI8vPWLKKEAKO7H2Mco-Acy-qkNaSGaoKgxnkgHZzE9yEKMW5VZ-wNEVdLRqHPiVwWs_W6hLZGzdB1yAPMZXc6R_ckGmTj5-k9cGzslxJV0n2zRn6vaOEw4rlF8N969W1BBs/s400/3.png" width="400" /></a></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span><br />
<span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span><br />
<span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;"><br />
</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><span style="font-family: Constantia;">NB: When you press next the LLVM compiler will build the project in order to </span><span style="font-family: Constantia;">analyse</span><span style="font-family: Constantia;"> it. If your project has any errors, you cannot proceed to the next step. If you are opening a project from a previous </span><span style="font-family: Constantia;">Xcode</span><span style="font-family: Constantia;"> version for the first time, remember to Clean.</span></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><br />
</span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlxO3ZqUmulnkocaPtebp5i4N8Z_c6WNPqS7FWzFHSeoEwetxKEHestx0UxDJCVqtWhjlkIZc10fdrV-bvL4EK7G6iKS7avMRwfOWZUwwhePzEDfC0aUOaeI8DpRlFgRcG24Xzrm5UNL4/s1600/4.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlxO3ZqUmulnkocaPtebp5i4N8Z_c6WNPqS7FWzFHSeoEwetxKEHestx0UxDJCVqtWhjlkIZc10fdrV-bvL4EK7G6iKS7avMRwfOWZUwwhePzEDfC0aUOaeI8DpRlFgRcG24Xzrm5UNL4/s400/4.png" width="400" /></a></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span class="Apple-style-span" style="font-family: Constantia;"><i><br />
</i></span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-align: left; text-indent: 0in; unicode-bidi: embed; word-break: normal;"><span style="vertical-align: baseline;"><u><span style="font-family: Constantia; font-style: italic; letter-spacing: -1pt; vertical-align: baseline;">THANK YOU</span></u> </span></div><div style="direction: ltr; margin-bottom: 0pt; margin-left: 0in; margin-top: 6pt; text-indent: 0in; unicode-bidi: embed; word-break: normal;"></div><br />
</div></div></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com0tag:blogger.com,1999:blog-3208198902285046621.post-65410508150570105932011-07-26T00:28:00.000-07:002011-07-26T07:01:18.832-07:00View Controller Life Cycle<div dir="ltr" style="text-align: left;" trbidi="on"><span class="s3" style="font-size: small;">View Controllers have a “lifecycle” from loading to unloading, and we have to override its delegate methods according to our requirement.</span> <br />
<div class="p3" style="color: #333333; font-family: 굴림; font-size: 9pt; line-height: 1.5;"><br />
</div><div class="p4" style="color: #333333; font-family: 굴림; font-size: 9pt; line-height: 1.5;"><span class="s3" style="font-size: large;"><b>1.</b><b>The life cycle starts with </b></span><span style="font-size: large;"><b><span class="s4">alloc </span><span class="s3">and initialization:</span></b></span><br />
<div style="font-family: Times,"Times New Roman",serif;"><span class="s3" style="font-size: small;">-</span><span style="font-size: small;"> (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)aBundle;</span></div></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">This is </span><span class="s2" style="font-size: small;">UIViewController</span><span style="font-size: small;">’s designated <b>initializer</b>. The </span><span class="s2" style="font-size: small;">UIViewController </span><span style="font-size: small;">tries to get its </span><span class="s2" style="font-size: small;">view </span><span style="font-size: small;">from the specified </span><span class="s2" style="font-size: small;"><b>.</b><b>xib</b> </span><span style="font-size: small;">file called <b><span class="s2">nibName</span></b></span><span style="font-size: small;">.</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">If </span><span class="s2" style="font-size: small;">nibName </span><span style="font-size: small;">is </span><span class="s2" style="font-size: small;">nil</span><span style="font-size: small;">, it uses the name of the class as the </span><span class="s2" style="font-size: small;">nibName </span><span style="font-size: small;"><i>(<span class="s2">MyViewController.xib</span>).</i></span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">The bundle allows you to specify one of a number of different </span><span class="s2" style="font-size: small;"><b>.xib</b> </span><span style="font-size: small;">files <i>(localization)</i>.</span><br />
<span style="font-size: small;">Passing </span><span class="s2" style="font-family: Times,"Times New Roman",serif; font-size: small;"><b>nil</b> </span><span style="font-family: Times,"Times New Roman",serif; font-size: small;">for </span><span class="s2" style="font-family: Times,"Times New Roman",serif; font-size: small;"><b>aBundle</b> </span><span style="font-family: Times,"Times New Roman",serif; font-size: small;">basically means <i>“look in the </i></span><span style="font-size: small;"><i><span class="s2">Resources </span>folder from Xcode.”</i></span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">Initializing </span><span class="s2" style="font-size: small;">UIViewController </span><span style="font-size: small;">with </span><span class="s2" style="font-size: small;"><b>init</b> </span><span style="font-size: small;">is very common, it means </span><span class="s2" style="font-size: small;"><b>nibName</b> </span><span style="font-size: small;">is </span><span class="s2" style="font-size: small;">nil </span><span style="font-size: small;">& </span><span class="s2" style="font-size: small;"><b>aBundle</b> </span><span style="font-size: small;">is </span><span class="s2" style="font-size: small;">nil</span><span style="font-size: small;">.</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;"><i><span class="s3">Can I build a </span><span class="s4">UIViewController</span><span class="s3">’s </span><span class="s4">view </span><span class="s3">in code (i.e. w/o a </span><span class="s4">.xib</span></i></span><span class="s3" style="font-size: small;"><i>)?</i> </span><span style="font-size: small;"><b>Yes</b>. If no </span><span class="s2" style="font-size: small;"><b>.xib</b> </span><span style="font-size: small;">is found using mechanism above, </span><span class="s2" style="font-size: small;">UIViewController </span><span style="font-size: small;">will call <i><span class="s2">- (void)loadView </span></i></span><span style="font-size: small;"><i>on itself.</i> <b><span class="s2">loadView</span></b></span><span style="font-size: small;">’s implementation MUST set the </span><span class="s2" style="font-size: small;">view </span><span style="font-size: small;">property in the </span><span class="s2" style="font-size: small;">UIViewController</span><span style="font-size: small;">. Don’t implement </span><span class="s2" style="font-size: small;"><b>loadView</b> </span><span style="font-size: small;">AND specify a </span><span class="s2" style="font-size: small;">.<b>xib</b> </span><span style="font-size: small;">file (it’s undefined what this would mean).</span></div><div class="p3" style="color: #333333; font-family: 굴림; font-size: 9pt; line-height: 1.5;"><br />
</div><div class="p1" style="color: #333333; font-family: 굴림; font-size: 9pt; line-height: 1.5;"><span class="s1" style="font-size: large;"><b>2.</b> </span><span style="font-size: large;"><b><span class="s4">viewDidLoad </span>is called after the <span class="s4">UIViewController </span>is initialized.</b></span><span style="font-size: 9pt;"> </span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">- (void)viewDidLoad;</span></div><div class="p2" style="color: #333333; font-family: 굴림; line-height: 1.5;"><div style="font-family: Times,"Times New Roman",serif;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><span class="Apple-style-span">The </span></span></span></span><span style="font-size: small;"><b>viewDidLoad</b></span><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><span class="Apple-style-span"> method is only called when the view is first loaded from the <b>Nib</b> file. If the view was already loaded and you push the view again it will not fire again. <b>viewDidLoad</b> is things you have to do once.Whenever I'm adding controls to a view that should appear together with the view, right away, I put it in the <b>ViewDidLoad</b> method. Basically this method is called whenever the view was loaded into memory. So <i>for example</i>, if my view is a form with 3 labels, I would add the labels here; the view will never exist without those forms.</span></span></span></span><br />
</div></div><div class="p1" style="color: #333333; font-family: 굴림; font-size: 9pt; line-height: 1.5;"><span style="font-size: large;"><b>3. </b><b>Just before the view appears on screen, </b><b>viewWillAppear is called.</b></span><span style="font-size: 9pt;"><b> </b></span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">- (void)viewWillAppear:(BOOL)animated;</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;"></span><span style="font-size: small;">Your </span><span class="s2" style="font-size: small;">view </span><span style="font-size: small;">will probably only get “loaded” once, but it might appear and disappear a lot. So don’t put something in this method that really wants to be in </span><span class="s2" style="font-size: small;">viewDidLoad</span><span style="font-size: small;">. Otherwise, you might be doing something over and over unnecessarily.</span></div><div class="p2" style="color: #333333; font-family: 굴림; line-height: 1.5;"><div style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">Use this to optimize performance by waiting until this method (i.e. just before view appears) to kick off an expensive operation (might have to put up a spinning “loading” icon though).</span><br />
</div></div><div class="p1" style="color: #333333; font-family: 굴림; line-height: 1.5;"><span class="s1" style="font-size: large;"><b>4. </b></span><span style="font-size: large;"><b>viewWillDisappear</b></span><span style="font-size: large;"> will be called when you will disappear off screen</span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">- (void)viewWillDisappear:(BOOL)animated {</span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">}</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span class="s2" style="font-size: small;">[superviewWillDisappear:animated]; </span><span style="font-size: small;">//callthisinallthe</span><span class="s2" style="font-size: small;">viewWill</span><span style="font-size: small;">/</span><span class="s2" style="font-size: small;">Did</span><span style="font-size: small;">methods // let’s be nice to the user and remember the scroll position they were at ... </span><span class="s2" style="font-size: small;">[selfrememberScrollPosition]; </span><span style="font-size: small;">//we’llhavetoimplementthis // do some other clean up now that we’ve been removed from the screen</span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">[self saveDataToPermanentStore];</span></div><div class="p2" style="color: #333333; font-family: 굴림; line-height: 1.5;"><div style="font-family: Times,"Times New Roman",serif;"><span style="font-size: small;">// but be careful not to do anything time-consuming here, or app will be sluggish // maybe even kick off a thread to do what needs doing here</span><br />
</div></div><div class="p1" style="color: #333333; font-family: 굴림; line-height: 1.5;"><span style="font-size: large;"><b>5.</b> <b>There are also “</b><b><span class="s4">did</span>” versions of both of these method: </b></span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;"><b>- (void)viewDidAppear:(BOOL)animated; - (void)viewDidDisappear:(BOOL)animated;</b></span></div><div class="p3" style="color: #333333; font-family: 굴림; font-size: 9pt; line-height: 1.5;"><br />
</div><b><span style="font-size: large;">6.</span></b><span class="s3" style="font-size: large;"> In </span><span style="font-size: large;">low-memory situations, </span><span class="s4" style="font-size: large;"><b>viewDidUnload</b> </span><span style="font-size: large;">is called. </span><br />
<div style="font-family: Times,"Times New Roman",serif;"><span style="font-size: x-small;">Be sure to release your outlets (or other data tied with the </span><span class="s2" style="font-size: x-small;">view </span><span style="font-size: x-small;">and its </span><span class="s2" style="font-size: x-small;">subviews</span><span style="font-size: x-small;">).</span> </div><div class="p3" style="color: #333333; font-family: 굴림; font-size: 9pt; line-height: 1.5;"><br />
</div><div class="p1" style="color: #333333; font-family: 굴림; line-height: 1.5;"><span style="font-size: large;"><b>7.</b> <b>Now comes to device rotation</b></span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)anOrientation {</span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">return (anOrientation == UIInterfaceOrientationPortrait) || (anOrientation == UIInterfaceOrientationPortraitUpsideDown);</span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">}</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">The default is to only allow </span><span class="s2" style="font-size: small;">UIInterfaceOrientationPortrait</span><span style="font-size: small;">. This </span><span class="s2" style="font-size: small;">UIViewController</span><span style="font-size: small;">’s </span><span class="s2" style="font-size: small;">view </span><span style="font-size: small;">is allowed to flip around if the device is turned upside down. There is also </span><span class="s2" style="font-size: small;">UIInterfaceOrientationLandscapeLeft </span><span style="font-size: small;">and </span><span class="s2" style="font-size: small;">Right</span><span style="font-size: small;">. It is certainly nice to return </span><span class="s2" style="font-size: small;">YES </span><span style="font-size: small;">from this method for as many as possible orientations.</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">But make sure that your </span><span class="s2" style="font-size: small;">view </span><span style="font-size: small;">can draw itself “wide and not-tall” as well as “tall and not-wide” if you are going to return </span><span class="s2" style="font-size: small;">YES </span><span style="font-size: small;">for the landscape orientations.</span></div><div class="p3" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;"><br />
</span></div><div class="p1" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span class="s1" style="font-size: small;">View Controller </span><span style="font-size: small;">When rotation actually happens</span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)anOrientation duration:(NSTimeInterval)seconds;</span></div><div class="p4" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)anOrientation; @property UIInterfaceOrientation interfaceOrientation;</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">The property will have the current orientation when each of the above is called. Stop doing anything expensive (e.g. an animation maybe?) in </span><span class="s2" style="font-size: small;">will </span><span style="font-size: small;">and resume it in </span><span class="s2" style="font-size: small;">did</span><span style="font-size: small;">.</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">The best way to handle rotations is to design your </span><span class="s2" style="font-size: small;">view </span><span style="font-size: small;">to layout its </span><span class="s2" style="font-size: small;">subviews </span><span style="font-size: small;">properly (i.e. set their </span><span class="s2" style="font-size: small;">frame</span><span style="font-size: small;">s) no matter what the aspect ratio of the </span><span class="s2" style="font-size: small;">view </span><span style="font-size: small;">is.</span></div><div class="p2" style="color: #333333; font-family: Times,"Times New Roman",serif; line-height: 1.5;"><span style="font-size: small;">Interface Builder can let you set “struts and springs” to help with layout flexibility. Or the </span><span class="s2" style="font-size: small;">UIView </span><span style="font-size: small;">method </span><span class="s2" style="font-size: small;">layoutSubviews </span><span style="font-size: small;">can be overridden to do this (outside this course’s scope).</span></div><div class="p2" style="color: #333333; font-family: 굴림; font-size: 9pt; line-height: 1.5;"><span style="font-size: 9pt;"><br />
</span></div></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com13tag:blogger.com,1999:blog-3208198902285046621.post-56873412438351141442011-07-25T06:58:00.003-07:002012-06-25T02:27:05.957-07:00iPhone/iPad Technical Interview Question(FAQ) with answers(Part 2)<div dir="ltr" style="text-align: left;" trbidi="on"><div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="color: black; font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"><i><u><a href="http://iphonenativeapp.blogspot.com/2011/03/iphoneipad-faq.html"><span class="Apple-style-span" style="color: red;">Prev….(Part 1)</span></a></u></i><span class="Apple-style-span" style="font-size: large;"> </span></span></span></span></div><div style="color: black; font-family: Times, 'Times New Roman', serif;"><br />
</div><div style="color: black; font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: large;">Q11. </span><span class="Apple-style-span" style="font-size: large;">What is <b>atomic and nonatomic</b> property attribute? </span></span></span></span></div><div style="color: black; font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"></span></span></span></div><div style="color: black; font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"></span></span></span></div><div style="color: black; font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"></span></span></span></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="color: black; font-family: Times, 'Times New Roman', serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: large;">A.</span></span></span></span></div><div style="color: black; font-family: Times, 'Times New Roman', serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;">Both are same unless we use our setter and getter methods.</span></span></span></div><div style="color: black; font-family: Times, 'Times New Roman', serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;">If we create our own setter and getter method, then atomic is useful in thread processing, but it is slow.</span></span></span></div><div style="color: black; font-family: Times, 'Times New Roman', serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;">Nonatomic does not give guarantee on thread processing but it is fast.</span></span></span></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div><div style="color: black; font-family: Times, 'Times New Roman', serif;"><br />
</div><span class="Apple-style-span" style="color: black; font-family: Times, 'Times New Roman', serif; font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: large;">Q12.<span style="color: #d000a2; font-family: Times, 'Times New Roman', serif;"><span style="font-size: small;"><i> </i></span></span></span></span></span></span><span class="Apple-style-span" style="font-size: large;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">What is the <b>life cycle of view controller</b>?</span></span></div><div style="color: black; font-family: Times, 'Times New Roman', serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: large;">A. <i><a href="http://iphonenativeapp.blogspot.com/2011/07/view-controller-life-cycle.html"><span style="color: red; font-size: small;">Press here....</span></a></i></span></span></span></span><br />
<div style="color: black; font-family: Times,"Times New Roman",serif;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: large;"><span class="Apple-style-span" style="font-size: large;"> </span> </span></span></span></div><div style="color: black; font-family: Times,"Times New Roman",serif;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: large;">Q13. Difference between </span><b><span class="Apple-style-span" style="font-size: large;">viewDidLoad, viewWillAppear, viewDidAppear and viewLoad</span></b><span class="Apple-style-span" style="font-size: large;">?</span></span></span></div></div></div></div></div><div style="color: black; font-family: Times, 'Times New Roman', serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: large;">A.</span></span></span></div></div></div><div style="color: black; font-family: Times; font-size: medium;"><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="color: black; font-family: Times,"Times New Roman",serif; margin: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="border-collapse: collapse; font-size: 14px; line-height: 18px;"></span></span></span></span></span></div><ul style="color: black; font-family: Times,"Times New Roman",serif; text-align: left;"><li><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><b style="background-color: transparent; border-width: 0px; font-weight: bold; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="Apple-style-span">ViewDidLoad</span></b><span class="Apple-style-span"> - The </span><code style="background-color: #eeeeee; border-width: 0px; margin: 0px; padding: 1px 5px; vertical-align: baseline;"><span class="Apple-style-span">viewDidLoad</span></code><span class="Apple-style-span"> method is only called when the view is first loaded from the Nib file. If the view was already loaded and you push the view again it will not fire again. viewDidLoad is things you have to do once.Whenever I'm adding controls to a view that should appear together with the view, right away, I put it in the ViewDidLoad method. Basically this method is called whenever the view was loaded into memory. So for example, if my view is a form with 3 labels, I would add the labels here; the view will never exist without those forms.</span></span></span></span></li>
<span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"> <span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><span class="Apple-style-span"></span>
<li><b style="background-color: transparent; border-width: 0px; font-weight: bold; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="Apple-style-span">ViewWillAppear</span></b><span class="Apple-style-span">: I use ViewWillAppear usually just to update the data on the form. So, for the example above, I would use this to actually load the data from my domain into the form. Creation of UIViews is fairly expensive, and you should avoid as much as possible doing that on the ViewWillAppear method, becuase when this gets called, it means that the iPhone is already ready to show the UIView to the user, and anything heavy you do here will impact performance in a very visible manner (like animations being delayed, etc).</span></li>
</span></span></span></ul><div style="color: black; font-family: Times,"Times New Roman",serif; margin: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><span class="Apple-style-span">when you are loading things from a server, you also have to think about latency. If you pack all of your network communication into viewDidLoad or viewWillAppear, they will be executed before the user gets to see the view - possibly resulting a short freeze of your app. It may be good idea to first show the user an unpopulated view with an activity indicator of some sort. When you are done with your networking, which may take a second or two (or may even fail - who knows?), you can populate the view with your data. Good examples on how this could be done can be seen in various twitter clients. For example, when you view the author detail page in Twitterrific, the view only says "Loading..." until the network queries have completed.</span></span></span></span></div><ul style="color: black; font-family: Times,"Times New Roman",serif; text-align: left;"><li><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><b style="background-color: transparent; border-width: 0px; font-weight: bold; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="Apple-style-span">ViewDidAppear</span></b><span class="Apple-style-span">: Finally, I use the ViewDidAppear to start off new threads to things that would take a long time to execute, like for example doing a webservice call to get extra data for the form above.The good thing is that because the view already exists and is being displayed to the user, you can show a nice "Waiting" message to the user while you get the data.</span></span></span></span></li>
<span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"> <span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><span class="Apple-style-span"></span>
<li><b style="background-color: transparent; border-width: 0px; font-weight: bold; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="Apple-style-span">ViewLoad</span></b><span class="Apple-style-span">: loadView is the method in UIViewController that will actually load up the view and assign it to the "view" property. This is also the location that a subclass of UIViewController would override if you wanted to programatically set up the "view" property.</span></li>
</span></span></span></ul><div style="color: black; font-family: Times,"Times New Roman",serif; margin: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><span class="Apple-style-span"> I've found that often when I add init code to loadView, I end up with an infinite stack trace</span></span></span></span></div><div style="background-color: transparent; border-width: 0px; clear: both; color: black; font-family: Times,"Times New Roman",serif; margin: 0px 0px 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;"><div style="margin: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><b style="background-color: transparent; border-width: 0px; font-weight: bold; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="Apple-style-span"> Don't read self.view in -loadView.</span></b><span class="Apple-style-span"> Only </span><i style="background-color: transparent; border-width: 0px; font-style: italic; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="Apple-style-span">set</span></i><span class="Apple-style-span"> it, don't </span><i style="background-color: transparent; border-width: 0px; font-style: italic; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="Apple-style-span">get</span></i><span class="Apple-style-span"> it.</span></span></span></span></div></div><div style="background-color: transparent; border-width: 0px; clear: both; color: black; font-family: Times,"Times New Roman",serif; margin: 0px 0px 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;"><div style="margin: 0px;"><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span class="Apple-style-span" style="border-collapse: collapse; line-height: 18px;"><span class="Apple-style-span"> The self.view property accessor </span><i style="background-color: transparent; border-width: 0px; font-style: italic; margin: 0px; padding: 0px; vertical-align: baseline;"><span class="Apple-style-span">calls</span></i><span class="Apple-style-span"> -loadView if the view isn't currently loaded. There's your infinite recursion.</span></span></span></span></div></div></div></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="color: #d000a2; font-family: Menlo; font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><i style="color: red;"><br />
</i></span></span><br />
<i style="font-family: Menlo;"><span style="color: #a64d79;">All The Best :)</span></i><br />
<i style="font-family: Menlo;"><span style="color: #a64d79;"><br />
</span></i><br />
<i style="background-color: #fefdfa; color: #333333; font-family: Times, 'Times New Roman', serif; line-height: 15px;"><span class="Apple-style-span" style="color: red;"><a href="http://iphonenativeapp.blogspot.in/2012/06/iphoneipad-technical-interview.html" style="color: #7d181e; text-decoration: none;"><span style="font-size: large;">Next(Part 3)….</span></a></span></i></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="color: #d000a2; font-family: Menlo; font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="color: #38761d; font-family: Times, 'Times New Roman', serif;"><i> </i></span></span></span></div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="color: #d000a2; font-family: Menlo; font-size: small;"><span class="Apple-style-span" style="font-size: 11px;"><span class="Apple-style-span" style="color: #38761d; font-family: Times, 'Times New Roman', serif;"><i> </i></span></span></span></div></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com8tag:blogger.com,1999:blog-3208198902285046621.post-11422573955347907702011-07-20T07:54:00.000-07:002014-03-26T02:07:14.782-07:00QR Code reader/scanner for iphone app in objective c (source code) using ZBarSDK<div dir="ltr" style="text-align: left;" trbidi="on">
<i><span class="Apple-style-span" style="color: #e06666;">Hey, I have googled a lot and found very less material for how to implement a QR code reader in our iPhone app. Here I have integrated all material and implemented in my project.</span></i><br />
<i><span class="Apple-style-span" style="color: #e06666;">So here I am sharing my experience of implementing a QR code reader in our iPhone app using ZBarSDK.</span></i><br />
<i><span class="Apple-style-span" style="color: #e06666;"><br />
</span></i><br />
<i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 1:</span></b> </i>Download<i> <a href="http://zbar.sourceforge.net/iphone/"><span class="Apple-style-span" style="color: red;">ZBarSDK from here.</span></a></i><br />
<i><br />
</i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 2:</span></b> </i></span><span class="Apple-style-span" style="font-style: normal;">Create a <a href="http://iphonenativeapp.blogspot.com/2011/02/introduction-to-xcode-view.html"><span class="Apple-style-span" style="color: red;">new project in xcode</span></a> and name it as QRscanner.</span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><br />
</span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 3: </span></b></i></span></i></span></i><i><span class="Apple-style-span" style="font-style: normal;">Integrate this ZBarSDK folder in your xcode project by drag and drop on equal level of class folder in left panel in xcode.</span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><br />
</span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 4: </span></b></i></span></i></span></i></span></i><i><span class="Apple-style-span" style="font-style: normal;">Add these 7 frameworks in <b>Frameworks</b> folder: </span></i><br />
<br />
<ol>
<li><i>AudioToolbox.framework</i></li>
<li><i>CoreMedia.framework</i></li>
<li><i>QuartzCore.framework</i></li>
<li><i>SystemConfiguration.framework</i></li>
<li><i>libiconv.dylib</i></li>
<li><i>AVFoundation.framework</i></li>
<li><i>CoreVideo.framework</i></li>
</ol>
<br />
<i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 5: </span></b></i></span></i></span></i></span></i></span></i><i><span class="Apple-style-span" style="font-style: normal;">Now <a href="http://chart.apis.google.com/chart?cht=qr&chs=500x500&chl=archana"><b><span class="Apple-style-span" style="color: red;">Go To this link</span></b></a> and generate some QR codes.</span></i><br />
<i><span class="Apple-style-span" style="color: #e06666;">(to generate QR codes only add the text which you want to attach with QR code at the end of the link (e.g. I have written archana) and press enter, and right click to save this image.) </span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><br />
</span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 6: </span></b></i></span></i></span></i></span></i></span></i><i><span class="Apple-style-span" style="font-style: normal;">Add these generated QR code's <a href="http://iphonenativeapp.blogspot.com/2011/07/add-images-to-iphone-photo-gallery.html">image in iphone library.</a></span></i></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><br />
</span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 7: </span></b></i></span></i></span></i></span></i></span></i><i><span class="Apple-style-span" style="font-style: normal;">Now open </span></i></span></i></span></i><span class="Apple-style-span" style="font-family: Menlo; font-size: 11px;">QRscannerViewController.h </span><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">in your xcode and write this code:</span><br />
<span class="Apple-style-span" style="color: #008b00; font-family: Menlo; font-size: 11px;"><br />
</span><br />
<div style="color: #e60b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #814823;">#import </span><UIKit/UIKit.h></div>
<div style="color: #e60b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #814823;">#import </span>"ZBarSDK.h"</div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<br /></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #d000a2;">@interface</span> QRscannerViewController : UIViewController <UIImagePickerControllerDelegate,ZBarReaderDelegate>{</div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<br /></div>
<div style="color: #3a8289; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #d000a2;">IBOutlet</span><span style="color: black;"> </span><span style="color: #7e22ac;">UITextView</span><span style="color: black;"> *</span>resultTextView<span style="color: black;">;</span></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span>}</div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #d000a2;">@property</span> (<span style="color: #d000a2;">nonatomic</span>, <span style="color: #d000a2;">retain</span>) <span style="color: #d000a2;">IBOutlet</span> UITextView *resultTextView;</div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<span style="color: #d000a2;">@property</span> (<span style="color: #d000a2;">nonatomic</span>, <span style="color: #d000a2;">retain</span>) UIImagePickerController *imgPicker;</div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<br /></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
-(<span style="color: #d000a2;">IBAction</span>)StartScan:(<span style="color: #d000a2;">id</span>) sender;</div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<br /></div>
<div style="color: #d000a2; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
@end</div>
<div>
<br /></div>
<i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 8: </span></b></i></span></i></span></i></span></i></span></i><i><span class="Apple-style-span" style="font-style: normal;">Now open </span></i></span></i></span></i><span class="Apple-style-span" style="font-family: Menlo; font-size: 11px;">QRscannerViewController.m </span><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">in your xcode and write this code:</span></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"></span></span></i><br />
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"></span></i><br />
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"></span></i><br />
<div style="color: #e60b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: #814823;">#import </span>"QRscannerViewController.h"</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: #d000a2;">@implementation</span> QRscannerViewController</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: #d000a2;">@synthesize</span> imgPicker,resultTextView;</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">-(<span style="color: #d000a2;">IBAction</span>)StartScan:(<span style="color: #d000a2;">id</span>) sender</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">{</span></i></div>
<div style="color: #3a8289; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>ZBarReaderViewController<span style="color: black;"> *reader = [</span>ZBarReaderViewController<span style="color: black;"> </span><span style="color: #490084;">new</span><span style="color: black;">];</span></span></i></div>
<div style="color: #3a8289; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span>reader.</span>readerDelegate<span style="color: black;"> = </span><span style="color: #d000a2;">self</span><span style="color: black;">;</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #3a8289; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span>reader.</span>readerView<span style="color: black;">.</span>torchMode<span style="color: black;"> = </span><span style="color: #3f00dd;">0</span><span style="color: black;">;</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #3a8289; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>ZBarImageScanner<span style="color: black;"> *scanner = reader.</span>scanner<span style="color: black;">;</span></span></i></div>
<div style="color: #008b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// TODO: (optional) additional reader configuration here</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #008b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// EXAMPLE: disable rarely used I2/5 to improve performance</span></i></div>
<div style="color: #1f5a5f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span>[scanner </span>setSymbology<span style="color: black;">: </span>ZBAR_I25</span></i></div>
<div style="color: #1f5a5f; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span> </span>config<span style="color: black;">: </span>ZBAR_CFG_ENABLE</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span> <span style="color: #1f5a5f;">to</span>: <span style="color: #3f00dd;">0</span>];</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #008b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// present and release the controller</span></i></div>
<div style="color: #490084; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span>[</span><span style="color: #d000a2;">self</span><span style="color: black;"> </span>presentModalViewController<span style="color: black;">: reader</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #490084;">animated</span>: <span style="color: #d000a2;">YES</span>];</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>[reader <span style="color: #490084;">release</span>];</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #3a8289; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>resultTextView<span style="color: black;">.</span><span style="color: #7e22ac;">hidden</span><span style="color: black;">=</span><span style="color: #d000a2;">NO</span><span style="color: black;">;</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">}</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">- (<span style="color: #d000a2;">void</span>) readerControllerDidFailToRead: (<span style="color: #3a8289;">ZBarReaderController</span>*) reader</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"> withRetry: (<span style="color: #d000a2;">BOOL</span>) retry{</span></i></div>
<div style="color: #e60b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #490084;">NSLog</span><span style="color: black;">(</span>@"the image picker failing to read"<span style="color: black;">);</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">}</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">- (<span style="color: #d000a2;">void</span>) imagePickerController: (<span style="color: #7e22ac;">UIImagePickerController</span>*) reader didFinishPickingMediaWithInfo: (<span style="color: #7e22ac;">NSDictionary</span>*) info</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">{</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #e60b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #490084;">NSLog</span><span style="color: black;">(</span>@"the image picker is calling successfully %@"<span style="color: black;">,info);</span></span></i></div>
<div style="color: #008b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// ADD: get the decode results</span></i></div>
<div style="color: #3a8289; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #d000a2;">id</span><span style="color: black;"><</span><span style="color: #7e22ac;">NSFastEnumeration</span><span style="color: black;">> results = [info </span><span style="color: #490084;">objectForKey</span><span style="color: black;">: </span>ZBarReaderControllerResults<span style="color: black;">];</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #3a8289;">ZBarSymbol</span> *symbol = <span style="color: #d000a2;">nil</span>;</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #7e22ac;">NSString</span> *hiddenData;</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #d000a2;">for</span>(symbol <span style="color: #d000a2;">in</span> results)</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>hiddenData=[<span style="color: #7e22ac;">NSString</span> <span style="color: #490084;">stringWithString</span>:symbol.<span style="color: #490084;">data</span>];</span></i></div>
<div style="color: #e60b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #490084;">NSLog</span><span style="color: black;">(</span>@"the symbols is the following %@"<span style="color: black;">,symbol.</span><span style="color: #3a8289;">data</span><span style="color: black;">);</span></span></i></div>
<div style="color: #008b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// EXAMPLE: just grab the first barcode</span></i></div>
<div style="color: #008b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// break;</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #008b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// EXAMPLE: do something useful with the barcode data</span></i></div>
<div style="color: #008b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>//resultText.text = symbol.data;</span></i></div>
<div style="color: #3a8289; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>resultTextView<span style="color: black;">.</span><span style="color: #7e22ac;">text</span><span style="color: black;">=symbol.</span>data<span style="color: black;">;</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #e60b00; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #490084;">NSLog</span><span style="color: black;">(</span>@"BARCODE= %@"<span style="color: black;">,symbol.</span><span style="color: #3a8289;">data</span><span style="color: black;">);</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="color: #7e22ac; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>NSUserDefaults<span style="color: black;"> *storeData=[</span>NSUserDefaults<span style="color: black;"> </span><span style="color: #490084;">standardUserDefaults</span><span style="color: black;">];</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>[storeData <span style="color: #490084;">setObject</span>:hiddenData <span style="color: #490084;">forKey</span>:<span style="color: #e60b00;">@"CONSUMERID"</span>];</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #490084;">NSLog</span>(<span style="color: #e60b00;">@"SYMBOL : %@"</span>,hiddenData);</span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #3a8289;">resultTextView</span>.<span style="color: #7e22ac;">text</span>=hiddenData;</span></i></div>
<div style="color: #490084; font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span>[reader </span>dismissModalViewControllerAnimated<span style="color: black;">: </span><span style="color: #d000a2;">NO</span><span style="color: black;">];</span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px; min-height: 13.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span></i></div>
<div style="font: 11.0px Menlo; margin: 0.0px 0.0px 0.0px 0.0px;">
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">}</span></i></div>
<div>
<i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></i></div>
<br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 9: </span></b></i></span></i></span></i></span></i></span></i></span></i></span></i></span></i></span></span></span></i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><i><span class="Apple-style-span" style="font-style: normal;">Now open </span></i></span><span class="Apple-style-span" style="font-family: Menlo; font-size: 11px;">QRscannerViewController.xib </span><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">and design it UI like this:</span><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times;"><i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i></span></span></span></i><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGd9ddwd234_WCvwvIV4rF6jdbkNyCdVp317iNwk6pf9IZ1QFiyeqjzHMRiRKjhcmmeIXyjuVAH6y3C5vcy7jhatjmQkQKVkWNzuUESyd4yFLxfc_GvY5dc7TLimal9sHp3QaWDhPo_68/s1600/Screen+shot+2011-07-20+at+7.02.57+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGd9ddwd234_WCvwvIV4rF6jdbkNyCdVp317iNwk6pf9IZ1QFiyeqjzHMRiRKjhcmmeIXyjuVAH6y3C5vcy7jhatjmQkQKVkWNzuUESyd4yFLxfc_GvY5dc7TLimal9sHp3QaWDhPo_68/s320/Screen+shot+2011-07-20+at+7.02.57+PM.png" height="320" width="204" /></a></div>
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times;"><i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i></span></span></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times;"><i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Step 10: </span></b></i></span></i></span></i></span></i></span></i></span></i></span></i></span></i></span></span></span></i></span></span></span></i><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><i><span class="Apple-style-span" style="font-style: normal;">Now make connection of above 2 objects(UITextView and UIButton) with IBOutlet </span></i></span><span class="Apple-style-span" style="color: #3a8289; font-family: Menlo; font-size: 11px;">resultTextView </span><i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times;"><i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="font-family: Times;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;"><i><span class="Apple-style-span" style="font-style: normal;">and IBAction </span></i></span></i></span></i></span></i></span></span></span></i></span></span></span></i><span class="Apple-style-span" style="font-family: Menlo; font-size: 11px;">StartScan.</span><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><i><a href="http://iphonenativeapp.blogspot.com/2011/02/introduction-to-xcode-view.html">(Refer Step 7 of…) </a></i></span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">At last build and run this app.</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><span class="Apple-style-span" style="color: #e06666;"><u><b>How to run this app:</b></u></span></span><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Press "START SCAN" button, and as we are running our app in simulator you will get screen like this:</span></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF02uioq13yCjOuLifwcFrPhHFWi9TLcD9mseavGN8OOqeBRG9f-CheNRfOT9OQukT5Mxc0WQO0W7_zpxi2EAL4fYU5zRxGFwEXLVTr8DqwKIhgpocALuHCZSUqkQWWWLfvGbldjdDx0s/s1600/Screen+shot+2011-07-20+at+7.29.52+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF02uioq13yCjOuLifwcFrPhHFWi9TLcD9mseavGN8OOqeBRG9f-CheNRfOT9OQukT5Mxc0WQO0W7_zpxi2EAL4fYU5zRxGFwEXLVTr8DqwKIhgpocALuHCZSUqkQWWWLfvGbldjdDx0s/s320/Screen+shot+2011-07-20+at+7.29.52+PM.png" height="320" width="165" /></a></div>
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Now press and hold (alt key)+(left click), Photo Album (image gallery, photo library) will open.</span></span></i><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">Select any QR code image. It will take hardly 2-3 seconds for scanning and finally you will get home screen with scanned data associated with </span><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;">QR code image on text view.</span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="color: red; font-family: Times, 'Times New Roman', serif;"><i><u><a href="http://www.esnips.com/doc/b999b74c-c50a-4381-8efd-e81597c07623/QRscanner">Download source code from here.</a></u></i></span><br />
<i><span class="Apple-style-span" style="font-style: normal;"><span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></span></i></div>
Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com170tag:blogger.com,1999:blog-3208198902285046621.post-16944858499824286772011-07-15T03:11:00.000-07:002011-07-28T23:19:01.631-07:00XML parser in Objective-C for iPhone Projects (KissXML Parser)<div dir="ltr" style="text-align: left;" trbidi="on">There are many XML parsers for iPhone project :<br />
<br />
<div style="background-color: #ffe599; color: black;"><span style="color: #741b47; font-size: small;"><b><a href="http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project"><i>This is very good material to take decision that when, where and which XML parser should be used in our iPhone project.</i></a></b></span></div><br />
But here I want to share my view on KissXML Parser, because I have implemented this in all my projects.<br />
<br />
<div style="background-color: #ffe599;"><b>Getting started with KissXML Parser :</b></div><br />
<i style="background-color: white; color: #38761d;"><a href="http://code.google.com/p/kissxml/downloads/list">1. Download the API's package for KissXML Parser from here.</a></i><br />
<br />
2. Add all files of this package in your project.<br />
<br />
3. Add libxml2.dylib framework in your project.<br />
<br />
4. Do some setting in your project:<br />
Open application file under Target in left panel of xcode -> Go To build tab -> set the values of "Other Linker Flags" and "Header Search Paths" as shown in below picture:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1G6Qxx0VO-Ppi2sPxF6mZxswO-Zgt8hs0GgMZVNRlbG7Ai_KGsQezT8iv-InIhvo4_ov7WqeG0X5RTjkAVBovQTCPwbC8TheAyg-K29AbqG0PpfLIPPApeVydzV_y8SKRulROtJSvNZU/s1600/XcodeSetup3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1G6Qxx0VO-Ppi2sPxF6mZxswO-Zgt8hs0GgMZVNRlbG7Ai_KGsQezT8iv-InIhvo4_ov7WqeG0X5RTjkAVBovQTCPwbC8TheAyg-K29AbqG0PpfLIPPApeVydzV_y8SKRulROtJSvNZU/s400/XcodeSetup3.png" width="377" /></a></div>5. Now suppose your xml is in this formate:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDzW7BpHw0AZSQivsr9DQVHCpGH7xQXukXraOV2DN3_9jRdAntT75OBxAxOrNvV9l2PwswK5gN7Y_NVMp-NOSLO3GkL8nBiFsQ_bYqKxoqpt_jeMBPXJk21w0Nfb5pkDwydFl7aYzEZNY/s1600/Screen+shot+2011-07-15+at+2.40.25+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDzW7BpHw0AZSQivsr9DQVHCpGH7xQXukXraOV2DN3_9jRdAntT75OBxAxOrNvV9l2PwswK5gN7Y_NVMp-NOSLO3GkL8nBiFsQ_bYqKxoqpt_jeMBPXJk21w0Nfb5pkDwydFl7aYzEZNY/s400/Screen+shot+2011-07-15+at+2.40.25+PM.png" width="400" /></a></div><br />
and you want to parse this xml and save it data in an array.<br />
<br />
6. Now open your <b>app.h</b> file and write this code :<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq07JnEyuTAxp2010VyfhHy5QB-u-FuCBhId839SdeZKBsNaFNgqthOyYtzlbG4I-HTHvNhyphenhyphenWEbqRb9byvGhWeNstfIt8heitx5Yk7GeOQGdoaN555cVjtKHc_ujglyryhpbi8CpNnt5w/s1600/Screen+shot+2011-07-29+at+11.37.34+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq07JnEyuTAxp2010VyfhHy5QB-u-FuCBhId839SdeZKBsNaFNgqthOyYtzlbG4I-HTHvNhyphenhyphenWEbqRb9byvGhWeNstfIt8heitx5Yk7GeOQGdoaN555cVjtKHc_ujglyryhpbi8CpNnt5w/s640/Screen+shot+2011-07-29+at+11.37.34+AM.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"></div> 7. Now open your <b>app.m</b> file and write this code :<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIBCG60r-sKxHxuQdPmIPmAqD3SARByDS_-Iix9OXrAjNPl4vpURLUs1f1sUnZN6aTpiRwGZJO6TIJPFOik2incs7M95UlxxwKRZK_w3COz47HQhqBWR2fmQlm6YWJa0Q7KSkbXJvD-Y8/s1600/Screen+shot+2011-07-29+at+11.42.26+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="341" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIBCG60r-sKxHxuQdPmIPmAqD3SARByDS_-Iix9OXrAjNPl4vpURLUs1f1sUnZN6aTpiRwGZJO6TIJPFOik2incs7M95UlxxwKRZK_w3COz47HQhqBWR2fmQlm6YWJa0Q7KSkbXJvD-Y8/s640/Screen+shot+2011-07-29+at+11.42.26+AM.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><br />
<br />
<div style="color: red;"><b><i>Note: Here, this xml is static for static data, you can create your own dynamic xml for dynamic data.</i></b><br />
<b><i><br />
</i></b><br />
<b><i><a href="http://iphonenativeapp.blogspot.com/2011/07/qr-code-readerscanner-for-iphone-app-in.html">Next….</a><span id="goog_492287150"></span><span id="goog_492287151"></span><a href="http://www.blogger.com/"></a></i></b></div></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com2tag:blogger.com,1999:blog-3208198902285046621.post-43203083659026818532011-07-14T06:58:00.000-07:002011-07-21T01:12:43.188-07:00Add Images To iPhone Simulator photo gallery<div dir="ltr" style="text-align: left;" trbidi="on"><i>There are 2 ways to add image to iphone photo gallery:</i><br />
<ul><li>Direct Method(drag and drop method).</li>
<li>Though coding.</li>
</ul><div style="color: red;"><span style="font-size: large;"><u><i>Direct Method(drag and drop method):</i></u></span></div><div style="color: red;"><br />
<span style="color: black;">Launch the simulator and go to this screen:</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEQuMd1NUkkzcC8qIIlxFJKw6WZd1FMOoQZOQV3AUNjE-lC9B4jC1TCXOioa5gFYb4_buRqzBG9ozOn9TdE79zGk8GqPowEs7dRoSCYZIZ9wSvegci9qQrVYidQePJVaiZOUS5JNBc6i4/s1600/Screen+shot+2011-07-14+at+5.36.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihGsZFOM8iygldUaZDiW9PWjBnEb_-Ti-vLdgGWq_N3DZxteef0fyqgANEg-Hi2Wq_-Mlqt11twZMJxQM8Tq-EC5q-wZPqdiyLje4W5jz0npq1Y4dbKD82Xdd3CUsQH58TZigjTji92gM/s1600/Screen+shot+2011-07-14+at+5.32.09+PM+copy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihGsZFOM8iygldUaZDiW9PWjBnEb_-Ti-vLdgGWq_N3DZxteef0fyqgANEg-Hi2Wq_-Mlqt11twZMJxQM8Tq-EC5q-wZPqdiyLje4W5jz0npq1Y4dbKD82Xdd3CUsQH58TZigjTji92gM/s320/Screen+shot+2011-07-14+at+5.32.09+PM+copy.png" width="161" /></a></div><br />
<span style="color: black;">Drag the image which you want to add in gallery and drop on safari icon:</span><br />
<div style="color: red;"><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizzf9QTBd7aKpEu5CsIFHj2RH71mPKA9gnm0FPW8auIJCkx_b55rabDs6McWfxTzRNofk0hVlDs4wn2ub7tuR-yYFwHTa94lYX3qnU39Hbk877lfI0FgI8LKrs06ulPo9vDtPaEpk2ifY/s1600/Screen+shot+2011-07-14+at+5.33.59+PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizzf9QTBd7aKpEu5CsIFHj2RH71mPKA9gnm0FPW8auIJCkx_b55rabDs6McWfxTzRNofk0hVlDs4wn2ub7tuR-yYFwHTa94lYX3qnU39Hbk877lfI0FgI8LKrs06ulPo9vDtPaEpk2ifY/s320/Screen+shot+2011-07-14+at+5.33.59+PM.png" width="161" /></a></div><br />
<span style="color: black;">Click on image(anywhere inside the red rectangle in above image) and hold it: </span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfPi8y6PmWgdp3K79lFCrN05cVRu9j7CqrVlKNx3Atjer7vUlPU8XjJtHlD6VzycpMv61weA2-T_21iWnb8sVjNHU2OecPTxF5EhDlfLOGsdPgq8mhafjorel8ADFLPvEj_ZQQrVhj6pk/s1600/Screen+shot+2011-07-14+at+5.34.34+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfPi8y6PmWgdp3K79lFCrN05cVRu9j7CqrVlKNx3Atjer7vUlPU8XjJtHlD6VzycpMv61weA2-T_21iWnb8sVjNHU2OecPTxF5EhDlfLOGsdPgq8mhafjorel8ADFLPvEj_ZQQrVhj6pk/s320/Screen+shot+2011-07-14+at+5.34.34+PM.png" width="162" /></a></div><br />
<div style="color: black;">You will get above 3 options: Save Image, Copy and Cancle.</div><div style="color: black;">Click on Save Image.</div><div style="color: black;"></div><div style="color: black;">Now to see the saved image Go To below screen and click on photo: </div><div style="color: black;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUoT2yGXqSx-fxHGtyFf7drALcw0FvHadmpMWzHH0M0a4NLS1WoQgSSsoy0ZtIybVqP56cLgqfoF5g-_inuD0H_kdnLamNCbpWIjR_jmS4SIdE6qiVmycupwnFDG-wwA8WKEiO7hSrK00/s1600/Screen+shot+2011-07-14+at+5.32.09+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUoT2yGXqSx-fxHGtyFf7drALcw0FvHadmpMWzHH0M0a4NLS1WoQgSSsoy0ZtIybVqP56cLgqfoF5g-_inuD0H_kdnLamNCbpWIjR_jmS4SIdE6qiVmycupwnFDG-wwA8WKEiO7hSrK00/s320/Screen+shot+2011-07-14+at+5.32.09+PM.png" width="161" /></a></div><br />
<br />
<div style="text-align: left;"> <span style="color: black;">It will open the iPhone Album, select the 1st row of table, it will open all saved images.</span></div><div style="text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl0rk6Hx_Mwp4WpF6cpb_9JZYGIhSQROTeAr0rJUtUv3GFmG5BUqirHyBK1Yk0WI5Zvasmx5UiA-esUzWLck2yP1-p8tjd2Xd4WeUsnGZ5hJKXAJe2IaB1owblow-FXWhb3tg1De90o24/s1600/Screen+shot+2011-07-14+at+5.35.21+PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl0rk6Hx_Mwp4WpF6cpb_9JZYGIhSQROTeAr0rJUtUv3GFmG5BUqirHyBK1Yk0WI5Zvasmx5UiA-esUzWLck2yP1-p8tjd2Xd4WeUsnGZ5hJKXAJe2IaB1owblow-FXWhb3tg1De90o24/s320/Screen+shot+2011-07-14+at+5.35.21+PM.png" width="164" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizzf9QTBd7aKpEu5CsIFHj2RH71mPKA9gnm0FPW8auIJCkx_b55rabDs6McWfxTzRNofk0hVlDs4wn2ub7tuR-yYFwHTa94lYX3qnU39Hbk877lfI0FgI8LKrs06ulPo9vDtPaEpk2ifY/s1600/Screen+shot+2011-07-14+at+5.33.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div><div class="separator" style="clear: both; text-align: left;"><span style="color: black;">Just double click on image to open.</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizzf9QTBd7aKpEu5CsIFHj2RH71mPKA9gnm0FPW8auIJCkx_b55rabDs6McWfxTzRNofk0hVlDs4wn2ub7tuR-yYFwHTa94lYX3qnU39Hbk877lfI0FgI8LKrs06ulPo9vDtPaEpk2ifY/s1600/Screen+shot+2011-07-14+at+5.33.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
</a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizzf9QTBd7aKpEu5CsIFHj2RH71mPKA9gnm0FPW8auIJCkx_b55rabDs6McWfxTzRNofk0hVlDs4wn2ub7tuR-yYFwHTa94lYX3qnU39Hbk877lfI0FgI8LKrs06ulPo9vDtPaEpk2ifY/s1600/Screen+shot+2011-07-14+at+5.33.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="" height="320" src="data:image/png;base64,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" width="163" /> </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="separator" style="clear: both; text-align: left;"><span style="font-size: large;"><u><i>Though coding </i></u>:</span><span style="color: black;"><i> </i></span></div><ol><li><span style="color: black;"><i><a href="http://iphonenativeapp.blogspot.com/2011/02/introduction-to-xcode-view.html" style="color: blue;">Create a new project in xcode</a></i> and name it as addImageInPhotoGallery</span>.</li>
<li><span style="color: black;">Add the image</span><span style="color: black;">(<i style="color: red;"><a href="http://iphonenativeapp.blogspot.com/2011/03/how-to-play-video-file-in-iphone-app.html">Ref step 3 of .....</a></i>)</span><span style="color: black;"> which you want to add in photo gallery in Resource folder of project.</span></li>
<li><span style="color: black;">Open</span> <span style="color: black;">addImageInPhotoGallery.m, and write this code : </span></li>
</ol><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><span style="color: black;"> - (void)viewDidLoad {<br />
</span></div><div class="separator" style="clear: both; text-align: left;"><span style="color: black;">//suppose you have added photo.png in resource folder.</span></div><div class="separator" style="clear: both; text-align: left;"><span style="color: black;">UIImage *sampleImage = [UIImage imageNamed:@"photo.png"];<br />
</span></div><div class="separator" style="clear: both; text-align: left;"><span style="color: black;">UIImageWriteToSavedPhotosAlbum(sampleImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);<br />
<br />
[super viewDidLoad];<br />
}<br />
<br />
- (void) image:(UIImage *) image didFinishSavingWithError:(NSError *) error contextInfo:(void *) contextInfo { <br />
UIAlertView *alert;<br />
<br />
// Unable to save the image <br />
if (error)<br />
alert = [[UIAlertView alloc] initWithTitle:@"Error" <br />
message:@"Unable to save image to Photo Album." <br />
delegate:self cancelButtonTitle:@"Ok" <br />
otherButtonTitles:nil];<br />
else // All is well<br />
alert = [[UIAlertView alloc] initWithTitle:@"Success" <br />
message:@"Image saved to Photo Album." <br />
delegate:self cancelButtonTitle:@"Ok" <br />
otherButtonTitles:nil];<br />
<br />
<br />
[alert show];<br />
[alert release];<br />
<br />
} <br />
</span></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
</div>4. <span style="color: black;">Now just build and run this code.</span><br />
<div class="separator" style="clear: both; text-align: left;"><span style="color: black;"> You will not see any thing on simulator screen, Go to photo gallery, open the Album and you will see that photo is added to photo gallery.</span></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><i><span class="Apple-style-span" style="font-size: large;"><a href="http://iphonenativeapp.blogspot.com/2011/07/xml-parser-in-objective-c-for-iphone.html">Next….</a></span></i></div></div></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com4tag:blogger.com,1999:blog-3208198902285046621.post-22330157547563080302011-06-22T01:34:00.001-07:002011-07-21T01:11:19.597-07:00Memory Management in iPhone<div dir="ltr" style="text-align: left;" trbidi="on"><div style="text-align: left;">In Mac OS X we have 2 options for memory management:</div><div style="text-align: left;"></div><ul style="text-align: left;"><li>Reference Counting.</li>
<li>Garbage Collection(GC).</li>
</ul>But, in iPhone there is no Garbage Collection(GC), it uses Reference Counting only.<br />
<div style="text-align: left;"></div><div>Reference Counting also called as Retain Counting and Managed Memory.</div><div><br />
</div><div>Now, what is Reference Counting?</div><div><br />
</div><div>Each object keeps a count of how many other objects are using it (it is discussed in terms of <i>Ownership</i>).</div><div><br />
</div><div>If we create an object i.e. receive an object from a method that begins with alloc or new or contains the word copy, it means we own the object, and it reference count becomes 1.</div><div><br />
</div><div>If we receive an object from other method, we do not own the object. If we want to keep the object i.e. store it in an instance variable, we have to take ownership of that object by sending it a retain message, which increment it's retain count by 1.</div><div><br />
</div><div>We may also take ownership by copying the object if it is capable of being copied, the object class must implement copyWithZone: .</div><div><br />
</div><div>If we own an object by any above method, we must relinquish our ownership by sending a release message to the object, which decreases its reference count by 1.</div><div><br />
</div><div>When an object's reference count becomes zero (0), the object is deallocated and its memory is returned to the heap.<br />
<br />
If a release message causes an object's retain count to drop to zero(0), the release method invokes the object's dealloc method.<br />
<br />
<i><span class="Apple-style-span" style="color: red;">Will be continue…...</span></i><br />
<br />
</div><div><br />
</div><div><span class="Apple-style-span" style="font-size: large;"><i><span class="Apple-style-span" style="color: red;"><a href="http://iphonenativeapp.blogspot.com/2011/07/add-images-to-iphone-photo-gallery.html">Next….</a></span></i></span></div></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com4tag:blogger.com,1999:blog-3208198902285046621.post-3054663662476255172011-06-17T05:43:00.001-07:002011-07-21T01:08:51.424-07:00iPhone Application Deployement(Part III)<div dir="ltr" style="text-align: left;" trbidi="on"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-size: x-small;"><i><a href="http://iphonenativeapp.blogspot.com/2011/06/iphone-application-deployementpart-i.html">(return to Part I)</a></i></span><br />
<br />
<span class="Apple-style-span" style="font-size: x-small;"><i><a href="http://iphonenativeapp.blogspot.com/2011/06/iphone-application-deployementpart-i.html"></a></i></span><span class="Apple-style-span" style="font-family: Times; font-size: small;"></span><br />
<span class="Apple-style-span" style="font-size: x-small;"><i><a href="http://iphonenativeapp.blogspot.com/2011/06/iphone-application-deployementpart-ii.html">(return to Part II)</a></i></span><br />
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><b><b><b><b></b></b></b></b></span><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important;"><div style="display: inline !important;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times; font-size: small;"></span><br />
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times; font-size: small;"></span><br />
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times; font-size: small;"></span><br />
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times; font-size: small;"></span><br />
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-family: Times; font-size: small;"></span><br />
<span class="Apple-style-span" style="font-family: Times; font-size: small;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important;"><div style="display: inline !important;"><div style="display: inline !important;"><span class="Apple-style-span" style="font-size: large;"><a href="http://iphonenativeapp.blogspot.com/2011/06/iphone-application-deployementpart-iii.html"><span class="Apple-style-span" style="color: red;">Part III</span></a></span></div></div></div></div></div></div></div></div></div></div></div></div></span></div></div></div></span></div></b></b></b></b></div></div></div></span></div></b></b></b></b></div></b></b></b></b></div></div></div></div></div></div></div></div></div></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></b></b></b></b></div></div></div></div></div></div></div></div></div></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></b></b></b></b></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></b></b></b></b></div></div></div></div></div></div></div></div></div></div></div></b></b></b></b><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="border-collapse: collapse; display: inline !important; font-family: arial, sans-serif; font-size: 13px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important;">Follow these steps to install application on device:</div></div></div></b></b></b></b></div></div></b></b></b></b></div></b></b></b></b></div></b></b></b></b><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"></div></b></b></b></b></div><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><span class="Apple-style-span" style="font-weight: normal;"><b><b><b><b></b></b></b></b></span><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"></div></b></b></b></b></div></b></b></b></b></div><b><b><b><b></b></b></b></b><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"></div></div></b></b></b></b><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"><ol><li style="margin-left: 15px;">Double click on cash.ipa, it will open in iTunes.</li>
<li style="margin-left: 15px;">Connect the device, it will also detect in iTunes.</li>
<li style="margin-left: 15px;">Now go to the "App" tab on the top.</li>
</ol><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"></div><div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWH89OLk43w6F9qvoWVjcYZ3xKuQOIwv_aPIvZdpO9i2ZVFS9i7myaH7PmX8-lIhyphenhyphenOoDYuY-f2_RXu2EpOzimcmPFdT_64n7qBA9SiQ7eEsiiYGIail00cQ0UvkDSQcVy_VSu7C39mPXg/s1600/Screen+shot+2011-06-20+at+2.25.37+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWH89OLk43w6F9qvoWVjcYZ3xKuQOIwv_aPIvZdpO9i2ZVFS9i7myaH7PmX8-lIhyphenhyphenOoDYuY-f2_RXu2EpOzimcmPFdT_64n7qBA9SiQ7eEsiiYGIail00cQ0UvkDSQcVy_VSu7C39mPXg/s320/Screen+shot+2011-06-20+at+2.25.37+PM.png" width="320" /></a></div><br />
</div></div><div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">4.Now mark the Sync Apps check box.<br />
<br />
</div></div><div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifd1PhSN6SgDXQCciLCDf969XaC8PLPnt5kY8l0OmquRKFhulUQNjhpkwub-sxh6pZdvhhZh_MNoTlUHw6NWGpC0L5rCtby8BFFrck6oM1QeolfbbXxzC7vK_UV-tlpQkpIFL_3Wws9cc/s1600/Screen+shot+2011-06-20+at+2.25.45+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifd1PhSN6SgDXQCciLCDf969XaC8PLPnt5kY8l0OmquRKFhulUQNjhpkwub-sxh6pZdvhhZh_MNoTlUHw6NWGpC0L5rCtby8BFFrck6oM1QeolfbbXxzC7vK_UV-tlpQkpIFL_3Wws9cc/s320/Screen+shot+2011-06-20+at+2.25.45+PM.png" width="320" /></a></div><br />
</div></div><div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"></div></div><div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div></div><div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">5. Mark the check box for cash in the application list and Press Sync then Apply.<br />
<br />
<span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-size: 12px; font-weight: normal;"><b><b><b><b></b></b></b></b></span><br />
<b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="border-collapse: collapse; display: inline !important; font-family: arial, sans-serif; font-size: 13px;"><div style="display: inline !important;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important;"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-size: 12px; font-weight: normal;"><b><b><b><b></b></b></b></b></span></div><b><b><b><b></b></b></b></b><br />
<b><b><b><b><div style="border-collapse: collapse; display: inline !important; font-family: arial, sans-serif; font-size: 13px;"><div style="display: inline !important;"><div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="display: inline !important;"><span class="Apple-style-span" style="color: red;"><i>Happy Installation :)</i></span></div></div></div></div></b></b></b></b></div></div></div></b></b></b></b><br />
<span class="Apple-style-span" style="color: red;"><i><span class="Apple-style-span" style="color: black;"><span class="Apple-style-span" style="font-style: normal;"><br />
</span></span></i></span><br />
<i><span class="Apple-style-span" style="color: red;"><span class="Apple-style-span" style="font-weight: normal;"><span class="Apple-style-span" style="font-size: small;"><a href="http://iphonenativeapp.blogspot.com/2011/06/memory-management-in-iphone.html">Next….</a></span></span></span></i></div></div></div></b></b></b></b></div><b><b></b></b><br />
<b><b><div style="display: inline !important; font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"></div></div></b></b></div>Archana Chaurasiahttp://www.blogger.com/profile/18069426783291077188noreply@blogger.com0