Code from previous app
3
.gitignore
vendored
|
@ -16,3 +16,6 @@ profile
|
|||
*.moved-aside
|
||||
DerivedData
|
||||
.idea/
|
||||
|
||||
// private class
|
||||
Photo/PrivateAuthenticationService.m
|
|
@ -1,57 +1,68 @@
|
|||
iPhone Analytics SDK Changelog
|
||||
Google Analytics SDK for iOS Changelog
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.5.1 (September 2012)
|
||||
Version: 2.0beta4 Update (Jan 2013)
|
||||
--------------------------------------------
|
||||
* Add support for armv7s (for iPhone5).
|
||||
* Drop support for armv6.
|
||||
* Remove NoThumb version of library.
|
||||
* Change default appVersion to the value in CFBundleShortVersionString
|
||||
instead of CFBundleVersionKey.
|
||||
* Use HTTPS as the default protocol instead of HTTP.
|
||||
* Track methods changed to Send (e.g. trackView now called sendView).
|
||||
* Some minor bug fixes.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.5 (April 2012)
|
||||
Version: 2.0beta3 iOS6 Update (Sep 2012)
|
||||
--------------------------------------------
|
||||
* Support for up to 50 custom variables (up from 5).
|
||||
* Events now include the last tracked page view.
|
||||
* GANTrackerDelegate protocol methods are now optional.
|
||||
* Updated BasicExample example app.
|
||||
* Add armv7s architecture to libGoogleAnalytics.a.
|
||||
* Remove armv6 architecture from libGoogleAnalytics.a.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.4 (November 2011)
|
||||
Version: 2.0beta3 (Aug 2012)
|
||||
--------------------------------------------
|
||||
* Added dispatchSynchronously method.
|
||||
* Exposed several useful constants.
|
||||
* Changed location of the Google Analytics
|
||||
database from Documents to Library.
|
||||
* The SDK no longer throws NSAsserts for SQLite
|
||||
database errors.
|
||||
* Fixed crash when calling trackPageview with an
|
||||
empty string
|
||||
* Fixed crashes when calling various GANTracker
|
||||
methods after stopTracker was called
|
||||
* Fixed several memory leaks, including one calling
|
||||
trackPageview with a pageURL that begins with '/'
|
||||
* Third beta release.
|
||||
* Added social tracking method to GAITracker:
|
||||
trackSocial:withAction:withTarget:
|
||||
* Timing method signature changed to:
|
||||
trackTiming:withValue:withName:withLabel:
|
||||
* Manual construction and dispatch methods added to GAITracker:
|
||||
set:value:
|
||||
get:
|
||||
send:params:
|
||||
* Custom dimension setter methods added to GAITracker:
|
||||
setCustom:dimension:
|
||||
setCustom:metric:
|
||||
* Architecture of data store refactored to prevent reported CoreData issues.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.3 (August 2011)
|
||||
Version: 2.0beta2 (Jun 2012)
|
||||
--------------------------------------------
|
||||
* Added anonymizeIp flag.
|
||||
* Added sampleRate parameter.
|
||||
* Added support for campaign referrals.
|
||||
* Second beta release.
|
||||
* Updated to latest wire format.
|
||||
* sampleRate changed to double-precision float.
|
||||
* Excessive tracking is throttled.
|
||||
* Undispatched tracking information is deleted when opt-out is enabled.
|
||||
* Undispatched tracking information older than 30 days will be deleted.
|
||||
* Enhancements to hit dispatcher.
|
||||
* Rather than periodically retry, the dispatcher will use the Reachability API
|
||||
when connectivity is lost to get notified when connectivity is reestablished.
|
||||
* Updated example app.
|
||||
* Other bugfixes and enhancements.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.2 (June 2011)
|
||||
Version: 2.0beta1 (May 2012)
|
||||
--------------------------------------------
|
||||
* Added support for Ecommerce.
|
||||
* Added Debug flag.
|
||||
* Added DryRun flag.
|
||||
* Initial internal beta release.
|
||||
* Added uncaught exception handling facility.
|
||||
* Removed 'dispatchEnabled' property from GAI.
|
||||
* Added 'defaultTracker' property to GAI.
|
||||
* Added 'close' method to GAITracker.
|
||||
* Added timing tracking method to GAITracker.
|
||||
* Added trackView method to GAITracker which takes no argument.
|
||||
* Transaction item field names updated.
|
||||
* Updated to latest wire format.
|
||||
* Event value is interpreted as a 64-bit integer.
|
||||
* ARMV6 code generation switched from THUMB to ARM.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.1 (February 2011)
|
||||
Version: 2.0alpha1 (April 2012)
|
||||
--------------------------------------------
|
||||
* Added support for Custom Variables.
|
||||
* Added a NoThumb version of the library.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.0 (July 2010)
|
||||
--------------------------------------------
|
||||
* iOS4 support for iPhone-Analytics.
|
||||
* Initial internal alpha release.
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/1998/REC-html40-19980424/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="ROBOTS" content="NOINDEX">
|
||||
<title>Documentation for GANTracker (GANTracker.h)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ascii">
|
||||
<meta name="generator" content="HeaderDoc">
|
||||
<meta name="xcode-display" content="render">
|
||||
<style type="text/css"><!--.keyword {background:#ffffff; color:#761550;}.template {background:#ffffff; color:#761550;}.number {background: #ffffff; color:#0000ff;}.function {background:#ffffff; color:#000000;}.string {background: #ffffff; color:#891315;}.preprocessor {background:#ffffff; color:#236e25}.comment {background:#ffffff; color:#236e25}.char {background: #ffffff; color:#0000ff;}.var {background:#ffffff; color:#000000;}.type {background:#ffffff; color:#761550;}.param {background:#ffffff; color:#000000;}a:link {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:active {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}h4 {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: tiny; font-weight: bold;}body {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: 10pt;}.list_indent { margin-left: 40px; }.declaration_indent { margin-left: 40px; }.param_indent { margin-left: 40px; }.group_indent { margin-left: 40px; }.group_desc_indent { margin-left: 20px; }.warning_indent { margin-left: 40px; }.important_indent { margin-left: 40px; }.hd_tocAccess { font-style: italic; font-size: 10px; font-weight: normal; color: #303030; }--></style>
|
||||
</head>
|
||||
<body bgcolor="#edf2f6" link="#000099" vlink="#660066" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
|
||||
<font size="-2"><a href="../../../masterTOC.html" target="_top" headerdoc="topLink">[Top]</a></font><br><table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr height="51" width="100%" bgcolor="#466C9B"><td width="100%"> </td></tr>
|
||||
<tr><td>
|
||||
<br><table border="0" cellpadding="0" cellspacing="2" width="148">
|
||||
<tr>
|
||||
<td width="15"> </td>
|
||||
<td colspan="2"><font size="5" color="#330066"><b>Class:</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="15"> </td>
|
||||
<td width="15"> </td>
|
||||
<td><b><font size="+1">GANTracker</font></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="2">
|
||||
<h4>
|
||||
<br><nobr><a href="index.html#top" target="doc">Introduction</a></nobr>
|
||||
</h4>
|
||||
<h4><a href="index.html#HeaderDoc_methods" target="doc">Methods</a></h4>
|
||||
<h5 class="hd_tocAccess">Class Methods</h5>
|
||||
<nobr>      <font size="-1">+</font><a href="index.html#//apple_ref/occ/clm/GANTracker/sharedTracker" target="doc">sharedTracker</a></nobr><br><h5 class="hd_tocAccess">Instance Methods</h5>
|
||||
<nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/addTransaction:totalPrice:storeName:totalTax:shippingCost:withError:" target="doc">addTransaction:‍totalPrice:‍storeName:‍totalTax:‍shippingCost:‍withError:‍</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/trackEvent:action:label:value:withError:" target="doc">trackEvent:‍action:‍label:‍value:‍withError:‍</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/setReferrer:withError:" target="doc">setReferrer:withError:</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/stopTracker" target="doc">stopTracker</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/trackTransactions:" target="doc">trackTransactions:</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/setCustomVariableAtIndex:name:value:withError:" target="doc">setCustomVariableAtIndex:‍name:‍value:‍withError:‍</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/dispatchSynchronous:" target="doc">dispatchSynchronous:</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/startTrackerWithAccountID:dispatchPeriod:delegate:" target="doc">startTrackerWithAccountID:‍dispatchPeriod:‍delegate:‍</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/addItem:itemSKU:itemPrice:itemCount:itemName:itemCategory:withError:" target="doc">addItem:‍itemSKU:‍itemPrice:‍itemCount:‍itemName:‍itemCategory:‍withError:‍</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/setCustomVariableAtIndex:name:value:scope:withError:" target="doc">setCustomVariableAtIndex:‍name:‍value:‍scope:‍withError:‍</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/dispatch" target="doc">dispatch</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/trackPageview:withError:" target="doc">trackPageview:withError:</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/clearTransactions:" target="doc">clearTransactions:</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/instm/GANTracker/getVisitorCustomVarAtIndex:" target="doc">getVisitorCustomVarAtIndex:</a></nobr><br><h4><a href="index.html#HeaderDoc_props" target="doc">Properties</a></h4>
|
||||
|
||||
<nobr>      <a href="index.html#//apple_ref/occ/instp/GANTracker/debug" target="doc">debug</a></nobr><br><nobr>      <a href="index.html#//apple_ref/occ/instp/GANTracker/dryRun" target="doc">dryRun</a></nobr><br><nobr>      <a href="index.html#//apple_ref/occ/instp/GANTracker/anonymizeIp" target="doc">anonymizeIp</a></nobr><br><nobr>      <a href="index.html#//apple_ref/occ/instp/GANTracker/sampleRate" target="doc">sampleRate</a></nobr><br><br><h4>Other Reference</h4>
|
||||
<hr>
|
||||
<nobr>      <a href="../../index.html" target="_top">Header</a></nobr><br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<p>
|
||||
</p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
|
@ -1,142 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/1998/REC-html40-19980424/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>GANTrackerDelegate</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ascii">
|
||||
<meta name="generator" content="HeaderDoc">
|
||||
<meta name="xcode-display" content="render">
|
||||
<style><!--
|
||||
#tocMenu {
|
||||
display: block;
|
||||
position:fixed;
|
||||
top:0px;
|
||||
left:0px;
|
||||
width:210px;
|
||||
height:100%;
|
||||
background:transparent;
|
||||
}
|
||||
#bodyText {
|
||||
margin-left: 210px;
|
||||
}
|
||||
--></style>
|
||||
<script language="JavaScript" type="text/javascript"><!--
|
||||
function hidetoc() {
|
||||
var origURL = parent.document.URL;
|
||||
var contentURL = origURL.substring(origURL.indexOf('?')+1, origURL.length);
|
||||
if (contentURL.length == origURL.length) {
|
||||
jumpPos = origURL.substring(origURL.indexOf('#')+1, origURL.length);
|
||||
}
|
||||
if (contentURL == "hidetoc") {
|
||||
var toc = document.getElementById('tocMenu');
|
||||
var body = document.getElementById('bodyText');
|
||||
if (toc && body) {
|
||||
toc.style.display = 'none';
|
||||
body.style.marginLeft = '0px';
|
||||
}
|
||||
}
|
||||
}
|
||||
--></script><style type="text/css"><!--.keyword {background:#ffffff; color:#761550;}.template {background:#ffffff; color:#761550;}.number {background: #ffffff; color:#0000ff;}.function {background:#ffffff; color:#000000;}.string {background: #ffffff; color:#891315;}.preprocessor {background:#ffffff; color:#236e25}.comment {background:#ffffff; color:#236e25}.char {background: #ffffff; color:#0000ff;}.var {background:#ffffff; color:#000000;}.type {background:#ffffff; color:#761550;}.param {background:#ffffff; color:#000000;}a:link {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:active {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}h4 {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: tiny; font-weight: bold;}body {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: 10pt;}.list_indent { margin-left: 40px; }.declaration_indent { margin-left: 40px; }.param_indent { margin-left: 40px; }.group_indent { margin-left: 40px; }.group_desc_indent { margin-left: 20px; }.warning_indent { margin-left: 40px; }.important_indent { margin-left: 40px; }.hd_tocAccess { font-style: italic; font-size: 10px; font-weight: normal; color: #303030; }--></style>
|
||||
</head>
|
||||
<body bgcolor="#ffffff" onload="hidetoc();">
|
||||
|
||||
<!-- headerDoc=intf; uid=//apple_ref/occ/intf/GANTrackerDelegate; name=GANTrackerDelegate-->
|
||||
<a name="//apple_ref/occ/intf/GANTrackerDelegate"></a><div id="tocMenu">
|
||||
<iframe id="toc_content" name="toc_content" src="toc.html" width="210" height="100%" align="left" frameborder="0">This document set is best viewed in a browser that supports iFrames.</iframe>
|
||||
</div>
|
||||
<div id="bodyText">
|
||||
<a name="top"></a>
|
||||
<hr>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h1><a name="GANTrackerDelegate">GANTrackerDelegate</a></h1>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p><!-- begin abstract --></p>
|
||||
<p>Google Analytics tracker delegate. This delegate gets notified when
|
||||
the tracker dispatches a hit successfully, or when there was an error
|
||||
dispatching the hit. All delegate methods are optional.
|
||||
<!-- end abstract --></p>
|
||||
<p><b>Extends Protocol:</b> <!-- a logicalPath="//apple_ref/occ/intf/NSObject" -->NSObject<!-- /a --><br><b>Declared In:</b> <a href="../../index.html" target="_top">GANTracker.h</a><br></p>
|
||||
<div class="declaration_indent">
|
||||
</div>
|
||||
<p></p>
|
||||
<hr>
|
||||
<br><a name="HeaderDoc_methods"></a>
|
||||
<h2>Methods</h2>
|
||||
<dl>
|
||||
<dt><tt><a href="index.html#//apple_ref/occ/intfm/GANTrackerDelegate/hitDispatched:" target="_top">-hitDispatched:</a></tt></dt>
|
||||
<dd>
|
||||
<p>This method is invoked when a hit has been successfully submitted to
|
||||
Google Analytics.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><tt><a href="index.html#//apple_ref/occ/intfm/GANTrackerDelegate/trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:" target="_top">-trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:</a></tt></dt>
|
||||
<dd>
|
||||
<p>This method is invoked when a dispatch to Google Analytics is
|
||||
completed.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<hr>
|
||||
<!-- headerDoc=intfm; uid=//apple_ref/occ/intfm/GANTrackerDelegate/hitDispatched:; name=GANTrackerDelegate::hitDispatched: --><a name="//apple_ref/occ/intfm/GANTrackerDelegate/hitDispatched:"></a>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h3><a name="hitDispatched:">hitDispatched:</a></h3>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p><!-- begin abstract --></p>
|
||||
<p>This method is invoked when a hit has been successfully submitted to
|
||||
Google Analytics.
|
||||
</p>
|
||||
<!-- end abstract -->
|
||||
<p></p>
|
||||
<div class="declaration_indent">
|
||||
<pre>- (<!-- a logicalPath="//apple_ref/occ/cl/void //apple_ref/occ/tdef/void //apple_ref/occ/tag/void //apple_ref/occ/econst/void //apple_ref/occ/struct/void //apple_ref/occ/clconst/void //apple_ref/occ/intf/void" --><span class="type">void</span><!-- /a -->)<!-- a logicalPath="//apple_ref/occ/instm/hitDispatched //apple_ref/occ/clm/hitDispatched //apple_ref/occ/intfcm/hitDispatched //apple_ref/occ/intfm/hitDispatched //apple_ref/occ/func/hitDispatched //apple_ref/occ/ftmplt/hitDispatched //apple_ref/occ/defn/hitDispatched //apple_ref/occ/macro/hitDispatched" --><span class="function">hitDispatched</span><!-- /a -->:(<!-- a logicalPath="//apple_ref/occ/cl/NSString //apple_ref/occ/tdef/NSString //apple_ref/occ/tag/NSString //apple_ref/occ/econst/NSString //apple_ref/occ/struct/NSString //apple_ref/occ/clconst/NSString //apple_ref/occ/intf/NSString" --><span class="type">NSString</span><!-- /a --> <span class="type">*</span>)<!-- a logicalPath="//apple_ref/occ/econst/hitString //apple_ref/occ/data/hitString" --><span class="var">hitString</span><!-- /a -->; </pre>
|
||||
</div>
|
||||
<h5 class="tight"><font face="Lucida Grande,Helvetica,Arial">Parameters</font></h5>
|
||||
<div class="param_indent">
|
||||
<dl>
|
||||
<dt><code>hitString</code></dt>
|
||||
<dd><p>The string representation of the hit, as sent to Google
|
||||
Analytics.</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p></p>
|
||||
<hr>
|
||||
<!-- headerDoc=intfm; uid=//apple_ref/occ/intfm/GANTrackerDelegate/trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:; name=GANTrackerDelegate::trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch: --><a name="//apple_ref/occ/intfm/GANTrackerDelegate/trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:"></a>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h3><a name="trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:">trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:</a></h3>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p><!-- begin abstract --></p>
|
||||
<p>This method is invoked when a dispatch to Google Analytics is
|
||||
completed.
|
||||
</p>
|
||||
<!-- end abstract -->
|
||||
<p></p>
|
||||
<div class="declaration_indent">
|
||||
<pre>- (<!-- a logicalPath="//apple_ref/occ/cl/void //apple_ref/occ/tdef/void //apple_ref/occ/tag/void //apple_ref/occ/econst/void //apple_ref/occ/struct/void //apple_ref/occ/clconst/void //apple_ref/occ/intf/void" --><span class="type">void</span><!-- /a -->)<!-- a logicalPath="//apple_ref/occ/instm/trackerDispatchDidComplete //apple_ref/occ/clm/trackerDispatchDidComplete //apple_ref/occ/intfcm/trackerDispatchDidComplete //apple_ref/occ/intfm/trackerDispatchDidComplete //apple_ref/occ/func/trackerDispatchDidComplete //apple_ref/occ/ftmplt/trackerDispatchDidComplete //apple_ref/occ/defn/trackerDispatchDidComplete //apple_ref/occ/macro/trackerDispatchDidComplete" --><span class="function">trackerDispatchDidComplete</span><!-- /a -->:(<a href="../../Classes/GANTracker/index.html#//apple_ref/occ/cl/GANTracker" logicalPath="//apple_ref/occ/cl/GANTracker" target="_top"><span class="type">GANTracker</span></a> <span class="type">*</span>)<span class="param">tracker</span> <!-- a logicalPath="//apple_ref/occ/instm/eventsDispatched //apple_ref/occ/clm/eventsDispatched //apple_ref/occ/intfcm/eventsDispatched //apple_ref/occ/intfm/eventsDispatched //apple_ref/occ/func/eventsDispatched //apple_ref/occ/ftmplt/eventsDispatched //apple_ref/occ/defn/eventsDispatched //apple_ref/occ/macro/eventsDispatched" --><span class="function">eventsDispatched</span><!-- /a -->:(<!-- a logicalPath="//apple_ref/occ/cl/NSUInteger //apple_ref/occ/tdef/NSUInteger //apple_ref/occ/tag/NSUInteger //apple_ref/occ/econst/NSUInteger //apple_ref/occ/struct/NSUInteger //apple_ref/occ/clconst/NSUInteger //apple_ref/occ/intf/NSUInteger" --><span class="type">NSUInteger</span><!-- /a -->)<span class="param">hitsDispatched</span> <!-- a logicalPath="//apple_ref/occ/instm/eventsFailedDispatch //apple_ref/occ/clm/eventsFailedDispatch //apple_ref/occ/intfcm/eventsFailedDispatch //apple_ref/occ/intfm/eventsFailedDispatch //apple_ref/occ/func/eventsFailedDispatch //apple_ref/occ/ftmplt/eventsFailedDispatch //apple_ref/occ/defn/eventsFailedDispatch //apple_ref/occ/macro/eventsFailedDispatch" --><span class="function">eventsFailedDispatch</span><!-- /a -->:(<!-- a logicalPath="//apple_ref/occ/cl/NSUInteger //apple_ref/occ/tdef/NSUInteger //apple_ref/occ/tag/NSUInteger //apple_ref/occ/econst/NSUInteger //apple_ref/occ/struct/NSUInteger //apple_ref/occ/clconst/NSUInteger //apple_ref/occ/intf/NSUInteger" --><span class="type">NSUInteger</span><!-- /a -->)<!-- a logicalPath="//apple_ref/occ/econst/hitsFailedDispatch //apple_ref/occ/data/hitsFailedDispatch" --><span class="var">hitsFailedDispatch</span><!-- /a -->; </pre>
|
||||
</div>
|
||||
<h5 class="tight"><font face="Lucida Grande,Helvetica,Arial">Parameters</font></h5>
|
||||
<div class="param_indent">
|
||||
<dl>
|
||||
<dt><code>tracker</code></dt>
|
||||
<dd><p>The tracker object for which the dispatch was made.</p></dd>
|
||||
<dt><code>hitsDispatched</code></dt>
|
||||
<dd><p>The number of hits successfully submitted to Google
|
||||
Analytics.</p></dd>
|
||||
<dt><code>hitsFailedDispatch</code></dt>
|
||||
<dd><p>The number of hits that could not be submitted.</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h5 class="tight">
|
||||
<font face="Lucida Grande,Helvetica,Arial">Discussion</font>
|
||||
</h5>
|
||||
<!-- begin discussion --><p>Note: failed hits will be retried on the next dispatch.
|
||||
</p>
|
||||
<!-- end discussion -->
|
||||
<p></p>
|
||||
<p></p>
|
||||
<p>© 2011 Google Inc. All Rights Reserved. Last Updated: Wednesday, April 11, 2012
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,45 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/1998/REC-html40-19980424/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="ROBOTS" content="NOINDEX">
|
||||
<title>Documentation for GANTrackerDelegate (GANTracker.h)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ascii">
|
||||
<meta name="generator" content="HeaderDoc">
|
||||
<meta name="xcode-display" content="render">
|
||||
<style type="text/css"><!--.keyword {background:#ffffff; color:#761550;}.template {background:#ffffff; color:#761550;}.number {background: #ffffff; color:#0000ff;}.function {background:#ffffff; color:#000000;}.string {background: #ffffff; color:#891315;}.preprocessor {background:#ffffff; color:#236e25}.comment {background:#ffffff; color:#236e25}.char {background: #ffffff; color:#0000ff;}.var {background:#ffffff; color:#000000;}.type {background:#ffffff; color:#761550;}.param {background:#ffffff; color:#000000;}a:link {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:active {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}h4 {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: tiny; font-weight: bold;}body {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: 10pt;}.list_indent { margin-left: 40px; }.declaration_indent { margin-left: 40px; }.param_indent { margin-left: 40px; }.group_indent { margin-left: 40px; }.group_desc_indent { margin-left: 20px; }.warning_indent { margin-left: 40px; }.important_indent { margin-left: 40px; }.hd_tocAccess { font-style: italic; font-size: 10px; font-weight: normal; color: #303030; }--></style>
|
||||
</head>
|
||||
<body bgcolor="#edf2f6" link="#000099" vlink="#660066" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
|
||||
<font size="-2"><a href="../../../masterTOC.html" target="_top" headerdoc="topLink">[Top]</a></font><br><table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr height="51" width="100%" bgcolor="#466C9B"><td width="100%"> </td></tr>
|
||||
<tr><td>
|
||||
<br><table border="0" cellpadding="0" cellspacing="2" width="148">
|
||||
<tr>
|
||||
<td width="15"> </td>
|
||||
<td colspan="2"><font size="5" color="#330066"><b>Protocol:</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="15"> </td>
|
||||
<td width="15"> </td>
|
||||
<td><b><font size="+1">GANTrackerDelegate</font></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="2">
|
||||
<h4>
|
||||
<br><nobr><a href="index.html#top" target="doc">Introduction</a></nobr>
|
||||
</h4>
|
||||
<h4><a href="index.html#HeaderDoc_methods" target="doc">Methods</a></h4>
|
||||
<h5 class="hd_tocAccess">Instance Methods</h5>
|
||||
<nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/intfm/GANTrackerDelegate/hitDispatched:" target="doc">hitDispatched:</a></nobr><br><nobr>      <font size="-1">-</font><a href="index.html#//apple_ref/occ/intfm/GANTrackerDelegate/trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:" target="doc">trackerDispatchDidComplete:‍eventsDispatched:‍eventsFailedDispatch:‍</a></nobr><br><br><h4>Other Reference</h4>
|
||||
<hr>
|
||||
<nobr>      <a href="../../index.html" target="_top">Header</a></nobr><br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<p>
|
||||
</p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,762 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>GAI Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<meta name="viewport" content="width=550" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.1 (build 858)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">Google Analytics SDK for iOS </a></h1>
|
||||
<a id="developerHome" href="../index.html">Google Inc</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">GAI Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/debug"> debug</option>
|
||||
|
||||
<option value="//api/name/defaultTracker"> defaultTracker</option>
|
||||
|
||||
<option value="//api/name/dispatchInterval"> dispatchInterval</option>
|
||||
|
||||
<option value="//api/name/optOut"> optOut</option>
|
||||
|
||||
<option value="//api/name/trackUncaughtExceptions"> trackUncaughtExceptions</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="class_methods">Class Methods</option>
|
||||
|
||||
<option value="//api/name/sharedInstance"> + sharedInstance</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/dispatch"> - dispatch</option>
|
||||
|
||||
<option value="//api/name/trackerWithTrackingId:"> - trackerWithTrackingId:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/debug">debug</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/defaultTracker">defaultTracker</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/dispatchInterval">dispatchInterval</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/optOut">optOut</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/trackUncaughtExceptions">trackUncaughtExceptions</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#class_methods">Class Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/sharedInstance">sharedInstance</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/dispatch">dispatch</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/trackerWithTrackingId:">trackerWithTrackingId:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="GAI Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">GAI Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value">NSObject</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">GAI.h</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>Google Analytics iOS top-level class. Provides facilities to create trackers
|
||||
and set behaviorial flags.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/defaultTracker"> defaultTracker</a></code>
|
||||
<span class="tooltip"><p>For convenience, this class exposes a default tracker instance.
|
||||
This is initialized to <code>nil</code> and will be set to the first tracker that is
|
||||
instantiated in <a href="#//api/name/trackerWithTrackingId:">trackerWithTrackingId:</a>. It may be overridden as desired.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/debug"> debug</a></code>
|
||||
<span class="tooltip"><p>If true, Google Analytics debug messages will be logged with <code>NSLog()</code>. This is
|
||||
useful for debugging calls to the Google Analytics SDK.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/optOut"> optOut</a></code>
|
||||
<span class="tooltip"><p>When this is true, no tracking information will be gathered; tracking calls
|
||||
will effectively become no-ops. When set to true, all tracking information that
|
||||
has not yet been submitted. The value of this flag will be persisted
|
||||
automatically by the SDK. Developers can optionally use this flag to implement
|
||||
an opt-out setting in the app to allows users to opt out of Google Analytics
|
||||
tracking.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/dispatchInterval"> dispatchInterval</a></code>
|
||||
<span class="tooltip"><p>If this value is negative, tracking information must be sent manually by
|
||||
calling <a href="#//api/name/dispatch">dispatch</a>. If this value is zero, tracking information will
|
||||
automatically be sent as soon as possible (usually immediately if the device
|
||||
has Internet connectivity). If this value is positive, tracking information
|
||||
will be automatically dispatched every dispatchInterval seconds.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/trackUncaughtExceptions"> trackUncaughtExceptions</a></code>
|
||||
<span class="tooltip"><p>When set to true, the SDK will record the currently registered uncaught
|
||||
exception handler, and then register an uncaught exception handler which tracks
|
||||
the exceptions that occurred using <a href="#//api/name/defaultTracker">defaultTracker</a>. If <a href="#//api/name/defaultTracker">defaultTracker</a> is not
|
||||
<code>nil</code>, this function will track the exception on the tracker and attempt to
|
||||
<a href="#//api/name/dispatch">dispatch</a> any outstanding tracking information for 5 seconds. It will then call
|
||||
the previously registered exception handler, if any. When set back to false,
|
||||
the previously registered uncaught exception handler will be restored.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/sharedInstance">+ sharedInstance</a></code>
|
||||
<span class="tooltip"><p>Get the shared instance of the Google Analytics for iOS class.</p></span>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/trackerWithTrackingId:">– trackerWithTrackingId:</a></code>
|
||||
<span class="tooltip"><p>Create or retrieve a <a href="../Protocols/GAITracker.html">GAITracker</a> implementation with the specified tracking
|
||||
ID. If the tracker for the specified tracking ID does not already exist, then
|
||||
it will be created and returned; otherwise, the existing tracker will be
|
||||
returned. If <a href="#//api/name/defaultTracker">defaultTracker</a> is not set, it will be set to the tracker instance
|
||||
returned here.</p></span>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/dispatch">– dispatch</a></code>
|
||||
<span class="tooltip"><p>Dispatches any pending tracking information.</p></span>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/debug" title="debug"></a>
|
||||
<h3 class="subsubtitle method-title">debug</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>If true, Google Analytics debug messages will be logged with <code>NSLog()</code>. This is
|
||||
useful for debugging calls to the Google Analytics SDK.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL debug</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection discussion-section">
|
||||
<h4 class="method-subtitle">Discussion</h4>
|
||||
<p>By default, this flag is set to <code>NO</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAI.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/defaultTracker" title="defaultTracker"></a>
|
||||
<h3 class="subsubtitle method-title">defaultTracker</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>For convenience, this class exposes a default tracker instance.
|
||||
This is initialized to <code>nil</code> and will be set to the first tracker that is
|
||||
instantiated in <a href="#//api/name/trackerWithTrackingId:">trackerWithTrackingId:</a>. It may be overridden as desired.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) id<GAITracker> defaultTracker</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection discussion-section">
|
||||
<h4 class="method-subtitle">Discussion</h4>
|
||||
<p>The <a href="../Classes/GAITrackedViewController.html">GAITrackedViewController</a> class will, by default, use this tracker instance.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAI.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/dispatchInterval" title="dispatchInterval"></a>
|
||||
<h3 class="subsubtitle method-title">dispatchInterval</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>If this value is negative, tracking information must be sent manually by
|
||||
calling <a href="#//api/name/dispatch">dispatch</a>. If this value is zero, tracking information will
|
||||
automatically be sent as soon as possible (usually immediately if the device
|
||||
has Internet connectivity). If this value is positive, tracking information
|
||||
will be automatically dispatched every dispatchInterval seconds.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) NSTimeInterval dispatchInterval</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection discussion-section">
|
||||
<h4 class="method-subtitle">Discussion</h4>
|
||||
<p>When the dispatchInterval is non-zero, setting it to zero will cause any queued
|
||||
tracking information to be sent immediately.</p>
|
||||
|
||||
<p>By default, this is set to <code>120</code>, which indicates tracking information should
|
||||
be dispatched automatically every 120 seconds.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAI.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/optOut" title="optOut"></a>
|
||||
<h3 class="subsubtitle method-title">optOut</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>When this is true, no tracking information will be gathered; tracking calls
|
||||
will effectively become no-ops. When set to true, all tracking information that
|
||||
has not yet been submitted. The value of this flag will be persisted
|
||||
automatically by the SDK. Developers can optionally use this flag to implement
|
||||
an opt-out setting in the app to allows users to opt out of Google Analytics
|
||||
tracking.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL optOut</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection discussion-section">
|
||||
<h4 class="method-subtitle">Discussion</h4>
|
||||
<p>This is set to <code>NO</code> the first time the Google Analytics SDK is used on a
|
||||
device, and is persisted thereafter.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAI.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/trackUncaughtExceptions" title="trackUncaughtExceptions"></a>
|
||||
<h3 class="subsubtitle method-title">trackUncaughtExceptions</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>When set to true, the SDK will record the currently registered uncaught
|
||||
exception handler, and then register an uncaught exception handler which tracks
|
||||
the exceptions that occurred using <a href="#//api/name/defaultTracker">defaultTracker</a>. If <a href="#//api/name/defaultTracker">defaultTracker</a> is not
|
||||
<code>nil</code>, this function will track the exception on the tracker and attempt to
|
||||
<a href="#//api/name/dispatch">dispatch</a> any outstanding tracking information for 5 seconds. It will then call
|
||||
the previously registered exception handler, if any. When set back to false,
|
||||
the previously registered uncaught exception handler will be restored.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) BOOL trackUncaughtExceptions</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAI.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Class Methods" name="class_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Class Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/sharedInstance" title="sharedInstance"></a>
|
||||
<h3 class="subsubtitle method-title">sharedInstance</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Get the shared instance of the Google Analytics for iOS class.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>+ (GAI *)sharedInstance</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAI.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/dispatch" title="dispatch"></a>
|
||||
<h3 class="subsubtitle method-title">dispatch</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Dispatches any pending tracking information.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)dispatch</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection discussion-section">
|
||||
<h4 class="method-subtitle">Discussion</h4>
|
||||
<p>It would be wise to call this when application is exiting to initiate the
|
||||
submission of any unsubmitted tracking information. Note that this does not
|
||||
have any effect on <a href="#//api/name/dispatchInterval">dispatchInterval</a>, and can be used in conjuntion with
|
||||
periodic dispatch.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAI.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/trackerWithTrackingId:" title="trackerWithTrackingId:"></a>
|
||||
<h3 class="subsubtitle method-title">trackerWithTrackingId:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Create or retrieve a <a href="../Protocols/GAITracker.html">GAITracker</a> implementation with the specified tracking
|
||||
ID. If the tracker for the specified tracking ID does not already exist, then
|
||||
it will be created and returned; otherwise, the existing tracker will be
|
||||
returned. If <a href="#//api/name/defaultTracker">defaultTracker</a> is not set, it will be set to the tracker instance
|
||||
returned here.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (id<GAITracker>)trackerWithTrackingId:(NSString *)<em>trackingId</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>trackingId</em></dt>
|
||||
<dd><p>The tracking ID (a string that begins with “UA-”). Must not
|
||||
be <code>nil</code> or empty.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection return">
|
||||
<h4 class="method-subtitle parameter-title">Return Value</h4>
|
||||
<p>A <a href="../Protocols/GAITracker.html">GAITracker</a> associated with the specified tracking ID. The tracker
|
||||
can be used to send tracking data to Google Analytics. The first time this
|
||||
method is called with a particular tracking ID, the tracker for that tracking
|
||||
ID will be returned, and subsequent calls with the same tracking ID will return
|
||||
the same instance. It is not necessary to retain the tracker because the
|
||||
tracker will be retained internally by the library.</p>
|
||||
|
||||
<p>If an error occurs or the tracker ID is not valid, this method will return
|
||||
<code>nil</code>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAI.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2013 Google Inc. All rights reserved. (Last updated: 2013-01-08)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.1 (build 858)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,361 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>GAITrackedViewController Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<meta name="viewport" content="width=550" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.1 (build 858)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">Google Analytics SDK for iOS </a></h1>
|
||||
<a id="developerHome" href="../index.html">Google Inc</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">GAITrackedViewController Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/trackedViewName"> trackedViewName</option>
|
||||
|
||||
<option value="//api/name/tracker"> tracker</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/trackedViewName">trackedViewName</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/tracker">tracker</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="GAITrackedViewController Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">GAITrackedViewController Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value">UIViewController</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">GAITrackedViewController.h</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>Extends UIViewController to generate Google Analytics view tracking calls
|
||||
whenever the view appears; this is done by overriding the <code>viewDidAppear:</code>
|
||||
method. The view name must be set for any tracking calls to be made.</p>
|
||||
|
||||
<p>By default, this will use <a href="../Classes/GAI.html#//api/name/defaultTracker">[GAI defaultTracker]</a> for tracking calls, but one can
|
||||
override this by setting the <a href="#//api/name/tracker">tracker</a> property.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/tracker"> tracker</a></code>
|
||||
<span class="tooltip"><p>The tracker on which view tracking calls are be made, or <code>nil</code>, in which case
|
||||
<a href="../Classes/GAI.html#//api/name/defaultTracker">[GAI defaultTracker]</a> will be used.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/trackedViewName"> trackedViewName</a></code>
|
||||
<span class="tooltip"><p>The view name, for purposes of Google Analytics view tracking. If this is
|
||||
<code>nil</code>, no tracking calls will be made.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/trackedViewName" title="trackedViewName"></a>
|
||||
<h3 class="subsubtitle method-title">trackedViewName</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The view name, for purposes of Google Analytics view tracking. If this is
|
||||
<code>nil</code>, no tracking calls will be made.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, copy) NSString *trackedViewName</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITrackedViewController.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/tracker" title="tracker"></a>
|
||||
<h3 class="subsubtitle method-title">tracker</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The tracker on which view tracking calls are be made, or <code>nil</code>, in which case
|
||||
<a href="../Classes/GAI.html#//api/name/defaultTracker">[GAI defaultTracker]</a> will be used.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) id<GAITracker> tracker</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITrackedViewController.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2013 Google Inc. All rights reserved. (Last updated: 2013-01-08)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.1 (build 858)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,783 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>GAITransaction Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<meta name="viewport" content="width=550" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.1 (build 858)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">Google Analytics SDK for iOS </a></h1>
|
||||
<a id="developerHome" href="../index.html">Google Inc</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">GAITransaction Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/affiliation"> affiliation</option>
|
||||
|
||||
<option value="//api/name/items"> items</option>
|
||||
|
||||
<option value="//api/name/revenueMicros"> revenueMicros</option>
|
||||
|
||||
<option value="//api/name/shippingMicros"> shippingMicros</option>
|
||||
|
||||
<option value="//api/name/taxMicros"> taxMicros</option>
|
||||
|
||||
<option value="//api/name/transactionId"> transactionId</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="class_methods">Class Methods</option>
|
||||
|
||||
<option value="//api/name/transactionWithId:withAffiliation:"> + transactionWithId:withAffiliation:</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="instance_methods">Instance Methods</option>
|
||||
|
||||
<option value="//api/name/addItem:"> - addItem:</option>
|
||||
|
||||
<option value="//api/name/addItemWithCode:name:category:priceMicros:quantity:"> - addItemWithCode:name:category:priceMicros:quantity:</option>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/affiliation">affiliation</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/items">items</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/revenueMicros">revenueMicros</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/shippingMicros">shippingMicros</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/taxMicros">taxMicros</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/transactionId">transactionId</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#class_methods">Class Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/transactionWithId:withAffiliation:">transactionWithId:withAffiliation:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/addItem:">addItem:</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/addItemWithCode:name:category:priceMicros:quantity:">addItemWithCode:name:category:priceMicros:quantity:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="GAITransaction Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">GAITransaction Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value">NSObject</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">GAITransaction.h</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A simple class to hold transaction data.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/transactionId"> transactionId</a></code>
|
||||
<span class="tooltip"><p>Transaction ID.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/affiliation"> affiliation</a></code>
|
||||
<span class="tooltip"><p>Transaction affiliation.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/revenueMicros"> revenueMicros</a></code>
|
||||
<span class="tooltip"><p>Revenue in micros (millionths of a currency unit). Note that this must be
|
||||
set manually because it is not updated when <a href="#//api/name/items">items</a> are added.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/taxMicros"> taxMicros</a></code>
|
||||
<span class="tooltip"><p>Tax in micros (millionths of a currency unit). Note that this must be set
|
||||
manually because it is not updated when <a href="#//api/name/items">items</a> are added.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/shippingMicros"> shippingMicros</a></code>
|
||||
<span class="tooltip"><p>Shipping cost in micros (millionths of a currency unit). Note that
|
||||
this must be set manually because it is not updated when <a href="#//api/name/items">items</a> are added.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/items"> items</a></code>
|
||||
<span class="tooltip"><p>Transaction items, as an immutable array.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/transactionWithId:withAffiliation:">+ transactionWithId:withAffiliation:</a></code>
|
||||
<span class="tooltip"><p>Create and initialize a transaction.</p></span>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/addItem:">– addItem:</a></code>
|
||||
<span class="tooltip"><p>Add an item to the transaction. If an item with the same SKU already
|
||||
exists in the transaction, that item will be replaced with this one.</p></span>
|
||||
</span>
|
||||
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/addItemWithCode:name:category:priceMicros:quantity:">– addItemWithCode:name:category:priceMicros:quantity:</a></code>
|
||||
<span class="tooltip"><p>Add an item to the transaction. If an item with the same SKU already
|
||||
exists in the transaction, that item will be replaced with this one.</p></span>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/affiliation" title="affiliation"></a>
|
||||
<h3 class="subsubtitle method-title">affiliation</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Transaction affiliation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, copy, readonly) NSString *affiliation</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/items" title="items"></a>
|
||||
<h3 class="subsubtitle method-title">items</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Transaction items, as an immutable array.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, readonly) NSArray *items</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/revenueMicros" title="revenueMicros"></a>
|
||||
<h3 class="subsubtitle method-title">revenueMicros</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Revenue in micros (millionths of a currency unit). Note that this must be
|
||||
set manually because it is not updated when <a href="#//api/name/items">items</a> are added.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) int64_t revenueMicros</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/shippingMicros" title="shippingMicros"></a>
|
||||
<h3 class="subsubtitle method-title">shippingMicros</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Shipping cost in micros (millionths of a currency unit). Note that
|
||||
this must be set manually because it is not updated when <a href="#//api/name/items">items</a> are added.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) int64_t shippingMicros</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/taxMicros" title="taxMicros"></a>
|
||||
<h3 class="subsubtitle method-title">taxMicros</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Tax in micros (millionths of a currency unit). Note that this must be set
|
||||
manually because it is not updated when <a href="#//api/name/items">items</a> are added.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) int64_t taxMicros</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/transactionId" title="transactionId"></a>
|
||||
<h3 class="subsubtitle method-title">transactionId</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Transaction ID.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, copy, readonly) NSString *transactionId</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Class Methods" name="class_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Class Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/transactionWithId:withAffiliation:" title="transactionWithId:withAffiliation:"></a>
|
||||
<h3 class="subsubtitle method-title">transactionWithId:withAffiliation:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Create and initialize a transaction.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>+ (GAITransaction *)transactionWithId:(NSString *)<em>transactionId</em> withAffiliation:(NSString *)<em>affiliation</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>transactionId</em></dt>
|
||||
<dd><p>The transaction ID. Required (must not be <code>nil</code>).</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>affiliation</em></dt>
|
||||
<dd><p>The transaction <a href="#//api/name/affiliation">affiliation</a>. May be <code>nil</code>.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection return">
|
||||
<h4 class="method-subtitle parameter-title">Return Value</h4>
|
||||
<p>A GAITransaction object with the specified transaction ID and
|
||||
<a href="#//api/name/affiliation">affiliation</a>.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Instance Methods" name="instance_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Instance Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/addItem:" title="addItem:"></a>
|
||||
<h3 class="subsubtitle method-title">addItem:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Add an item to the transaction. If an item with the same SKU already
|
||||
exists in the transaction, that item will be replaced with this one.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)addItem:(GAITransactionItem *)<em>item</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>item</em></dt>
|
||||
<dd><p>The <a href="../Classes/GAITransactionItem.html">GAITransactionItem</a> to add to the transaction.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/addItemWithCode:name:category:priceMicros:quantity:" title="addItemWithCode:name:category:priceMicros:quantity:"></a>
|
||||
<h3 class="subsubtitle method-title">addItemWithCode:name:category:priceMicros:quantity:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Add an item to the transaction. If an item with the same SKU already
|
||||
exists in the transaction, that item will be replaced with this one.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>- (void)addItemWithCode:(NSString *)<em>productCode</em> name:(NSString *)<em>productName</em> category:(NSString *)<em>productCategory</em> priceMicros:(int64_t)<em>priceMicros</em> quantity:(NSInteger)<em>quantity</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>productCode</em></dt>
|
||||
<dd><p>The item product code; must not be <code>nil</code> or empty.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>productName</em></dt>
|
||||
<dd><p>The item product name; may be <code>nil</code>.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>productCategory</em></dt>
|
||||
<dd><p>The item product category; may be <code>nil</code>.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>priceMicros</em></dt>
|
||||
<dd><p>The item price, in micros (millionths of a currency unit).</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>quantity</em></dt>
|
||||
<dd><p>The item quantity, as an NSInteger.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection return">
|
||||
<h4 class="method-subtitle parameter-title">Return Value</h4>
|
||||
<p>The newly initialized item.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransaction.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2013 Google Inc. All rights reserved. (Last updated: 2013-01-08)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.1 (build 858)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,588 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
|
||||
<title>GAITransactionItem Class Reference</title>
|
||||
<meta id="xcode-display" name="xcode-display" content="render"/>
|
||||
<meta name="viewport" content="width=550" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.1 (build 858)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="../index.html">Google Analytics SDK for iOS </a></h1>
|
||||
<a id="developerHome" href="../index.html">Google Inc</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">GAITransactionItem Class Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar">
|
||||
<li id="toc_button">
|
||||
<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
|
||||
</li>
|
||||
<li id="jumpto_button" role="navigation">
|
||||
<select id="jumpTo">
|
||||
<option value="top">Jump To…</option>
|
||||
|
||||
<option value="overview">Overview</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="tasks">Tasks</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="properties">Properties</option>
|
||||
|
||||
<option value="//api/name/priceMicros"> priceMicros</option>
|
||||
|
||||
<option value="//api/name/productCategory"> productCategory</option>
|
||||
|
||||
<option value="//api/name/productCode"> productCode</option>
|
||||
|
||||
<option value="//api/name/productName"> productName</option>
|
||||
|
||||
<option value="//api/name/quantity"> quantity</option>
|
||||
|
||||
|
||||
|
||||
|
||||
<option value="class_methods">Class Methods</option>
|
||||
|
||||
<option value="//api/name/itemWithCode:name:category:priceMicros:quantity:"> + itemWithCode:name:category:priceMicros:quantity:</option>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<nav id="tocContainer" class="isShowingTOC">
|
||||
<ul id="toc" role="tree">
|
||||
|
||||
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#properties">Properties</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/priceMicros">priceMicros</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/productCategory">productCategory</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/productCode">productCode</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/productName">productName</a></span></li>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/quantity">quantity</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#class_methods">Class Methods</a></span><ul>
|
||||
|
||||
<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/itemWithCode:name:category:priceMicros:quantity:">itemWithCode:name:category:priceMicros:quantity:</a></span></li>
|
||||
|
||||
</ul></li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<article>
|
||||
<div id="contents" class="isShowingTOC" role="main">
|
||||
<a title="GAITransactionItem Class Reference" name="top"></a>
|
||||
<div class="main-navigation navigation-top">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">GAITransactionItem Class Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="section section-specification"><table cellspacing="0"><tbody>
|
||||
<tr>
|
||||
<td class="specification-title">Inherits from</td>
|
||||
<td class="specification-value">NSObject</td>
|
||||
</tr><tr>
|
||||
<td class="specification-title">Declared in</td>
|
||||
<td class="specification-value">GAITransactionItem.h</td>
|
||||
</tr>
|
||||
</tbody></table></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-overview">
|
||||
<a title="Overview" name="overview"></a>
|
||||
<h2 class="subtitle subtitle-overview">Overview</h2>
|
||||
<p>A simple class to hold transaction item data.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-tasks">
|
||||
<a title="Tasks" name="tasks"></a>
|
||||
<h2 class="subtitle subtitle-tasks">Tasks</h2>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ul class="task-list">
|
||||
<li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/productCode"> productCode</a></code>
|
||||
<span class="tooltip"><p>The item code, as a string.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/productName"> productName</a></code>
|
||||
<span class="tooltip"><p>The item name.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/productCategory"> productCategory</a></code>
|
||||
<span class="tooltip"><p>The item variation.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/priceMicros"> priceMicros</a></code>
|
||||
<span class="tooltip"><p>The item price in micros (millionths of a currency unit).</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/quantity"> quantity</a></code>
|
||||
<span class="tooltip"><p>The item quantity.</p></span>
|
||||
</span>
|
||||
<span class="task-item-suffix">property</span>
|
||||
|
||||
</li><li>
|
||||
<span class="tooltip">
|
||||
<code><a href="#//api/name/itemWithCode:name:category:priceMicros:quantity:">+ itemWithCode:name:category:priceMicros:quantity:</a></code>
|
||||
<span class="tooltip"><p>Create and initialize an item.</p></span>
|
||||
</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Properties" name="properties"></a>
|
||||
<h2 class="subtitle subtitle-methods">Properties</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/priceMicros" title="priceMicros"></a>
|
||||
<h3 class="subsubtitle method-title">priceMicros</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The item price in micros (millionths of a currency unit).</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) int64_t priceMicros</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransactionItem.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/productCategory" title="productCategory"></a>
|
||||
<h3 class="subsubtitle method-title">productCategory</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The item variation.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, copy) NSString *productCategory</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransactionItem.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/productCode" title="productCode"></a>
|
||||
<h3 class="subsubtitle method-title">productCode</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The item code, as a string.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, copy, readonly) NSString *productCode</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransactionItem.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/productName" title="productName"></a>
|
||||
<h3 class="subsubtitle method-title">productName</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The item name.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, copy) NSString *productName</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransactionItem.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/quantity" title="quantity"></a>
|
||||
<h3 class="subsubtitle method-title">quantity</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>The item quantity.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) NSInteger quantity</code></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransactionItem.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="section section-methods">
|
||||
<a title="Class Methods" name="class_methods"></a>
|
||||
<h2 class="subtitle subtitle-methods">Class Methods</h2>
|
||||
|
||||
<div class="section-method">
|
||||
<a name="//api/name/itemWithCode:name:category:priceMicros:quantity:" title="itemWithCode:name:category:priceMicros:quantity:"></a>
|
||||
<h3 class="subsubtitle method-title">itemWithCode:name:category:priceMicros:quantity:</h3>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection brief-description">
|
||||
<p>Create and initialize an item.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection method-declaration"><code>+ (GAITransactionItem *)itemWithCode:(NSString *)<em>productCode</em> name:(NSString *)<em>productName</em> category:(NSString *)<em>productCategory</em> priceMicros:(int64_t)<em>priceMicros</em> quantity:(NSInteger)<em>quantity</em></code></div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection arguments-section parameters">
|
||||
<h4 class="method-subtitle parameter-title">Parameters</h4>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>productCode</em></dt>
|
||||
<dd><p>The item product code; must not be <code>nil</code> or empty.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>productName</em></dt>
|
||||
<dd><p>The item product name; must not be <code>nil</code> or empty.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>productCategory</em></dt>
|
||||
<dd><p>The item product category; may be <code>nil</code>.</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>priceMicros</em></dt>
|
||||
<dd><p>The item price, in micros (millionths of a currency unit).</p></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="argument-def parameter-def">
|
||||
<dt><em>quantity</em></dt>
|
||||
<dd><p>The item <a href="#//api/name/quantity">quantity</a>, as an NSInteger.</p></dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection return">
|
||||
<h4 class="method-subtitle parameter-title">Return Value</h4>
|
||||
<p>The newly initialized item.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="method-subsection declared-in-section">
|
||||
<h4 class="method-subtitle">Declared In</h4>
|
||||
<code class="declared-in-ref">GAITransactionItem.h</code><br />
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
<li><a href="../hierarchy.html">Hierarchy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2013 Google Inc. All rights reserved. (Last updated: 2013-01-08)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.1 (build 858)</a>.</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<script type="text/javascript">
|
||||
function jumpToChange()
|
||||
{
|
||||
window.location.hash = this.options[this.selectedIndex].value;
|
||||
}
|
||||
|
||||
function toggleTOC()
|
||||
{
|
||||
var contents = document.getElementById('contents');
|
||||
var tocContainer = document.getElementById('tocContainer');
|
||||
|
||||
if (this.getAttribute('class') == 'open')
|
||||
{
|
||||
this.setAttribute('class', '');
|
||||
contents.setAttribute('class', '');
|
||||
tocContainer.setAttribute('class', '');
|
||||
|
||||
window.name = "hideTOC";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.setAttribute('class', 'open');
|
||||
contents.setAttribute('class', 'isShowingTOC');
|
||||
tocContainer.setAttribute('class', 'isShowingTOC');
|
||||
|
||||
window.name = "";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function toggleTOCEntryChildren(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
var currentClass = this.getAttribute('class');
|
||||
if (currentClass == 'children') {
|
||||
this.setAttribute('class', 'children open');
|
||||
}
|
||||
else if (currentClass == 'children open') {
|
||||
this.setAttribute('class', 'children');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tocEntryClick(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
return true;
|
||||
}
|
||||
|
||||
function init()
|
||||
{
|
||||
var selectElement = document.getElementById('jumpTo');
|
||||
selectElement.addEventListener('change', jumpToChange, false);
|
||||
|
||||
var tocButton = document.getElementById('table_of_contents');
|
||||
tocButton.addEventListener('click', toggleTOC, false);
|
||||
|
||||
var taskTreeItem = document.getElementById('task_treeitem');
|
||||
if (taskTreeItem.getElementsByTagName('li').length > 0)
|
||||
{
|
||||
taskTreeItem.setAttribute('class', 'children');
|
||||
taskTreeItem.firstChild.setAttribute('class', 'disclosure');
|
||||
}
|
||||
|
||||
var tocList = document.getElementById('toc');
|
||||
|
||||
var tocEntries = tocList.getElementsByTagName('li');
|
||||
for (var i = 0; i < tocEntries.length; i++) {
|
||||
tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
|
||||
}
|
||||
|
||||
var tocLinks = tocList.getElementsByTagName('a');
|
||||
for (var i = 0; i < tocLinks.length; i++) {
|
||||
tocLinks[i].addEventListener('click', tocEntryClick, false);
|
||||
}
|
||||
|
||||
if (window.name == "hideTOC") {
|
||||
toggleTOC.call(tocButton);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = init;
|
||||
|
||||
// If showing in Xcode, hide the TOC and Header
|
||||
if (navigator.userAgent.match(/xcode/i)) {
|
||||
document.getElementById("contents").className = "hideInXcode"
|
||||
document.getElementById("tocContainer").className = "hideInXcode"
|
||||
document.getElementById("top_header").className = "hideInXcode"
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,588 @@
|
|||
body {
|
||||
font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: Courier, Consolas, monospace;
|
||||
font-size: 13px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: Courier, Consolas, monospace;
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
tab-interval: 0.5em;
|
||||
border: 1px solid #C7CFD5;
|
||||
background-color: #F1F5F9;
|
||||
color: #666;
|
||||
padding: 0.3em 1em;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
a, a code {
|
||||
text-decoration: none;
|
||||
color: #36C;
|
||||
}
|
||||
|
||||
a:hover, a:hover code {
|
||||
text-decoration: underline;
|
||||
color: #36C;
|
||||
}
|
||||
|
||||
h2 {
|
||||
border-bottom: 1px solid #8391A8;
|
||||
color: #3C4C6C;
|
||||
font-size: 187%;
|
||||
font-weight: normal;
|
||||
margin-top: 1.75em;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-bottom: 4em;
|
||||
border-collapse:collapse;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
td {
|
||||
border: 1px solid #9BB3CD;
|
||||
padding: .667em;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
th {
|
||||
border: 1px solid #9BB3CD;
|
||||
padding: .3em .667em .3em .667em;
|
||||
background: #93A5BB;
|
||||
font-size: 103%;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* @group Common page elements */
|
||||
|
||||
#top_header {
|
||||
height: 91px;
|
||||
left: 0;
|
||||
min-width: 598px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 900;
|
||||
}
|
||||
|
||||
#footer {
|
||||
clear: both;
|
||||
padding-top: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#contents, #overview_contents {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
border-top: 1px solid #2B334F;
|
||||
position: absolute;
|
||||
top: 91px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-top: 1em;
|
||||
min-width: 550px;
|
||||
}
|
||||
|
||||
#contents.isShowingTOC {
|
||||
left: 230px;
|
||||
min-width: 320px;
|
||||
}
|
||||
|
||||
.copyright {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.generator {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.main-navigation ul li {
|
||||
display: inline;
|
||||
margin-left: 15px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.navigation-top {
|
||||
clear: both;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.navigation-bottom {
|
||||
clear: both;
|
||||
float: right;
|
||||
margin-top: 20px;
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
|
||||
.open > .disclosure {
|
||||
background-image: url("../img/disclosure_open.png");
|
||||
}
|
||||
|
||||
.disclosure {
|
||||
background: url("../img/disclosure.png") no-repeat scroll 0 0;
|
||||
}
|
||||
|
||||
.disclosure, .nodisclosure {
|
||||
display: inline-block;
|
||||
height: 8px;
|
||||
margin-right: 5px;
|
||||
position: relative;
|
||||
width: 9px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Header */
|
||||
|
||||
#top_header #library {
|
||||
background: url("../img/library_background.png") repeat-x 0 0 #485E78;
|
||||
background-color: #ccc;
|
||||
height: 35px;
|
||||
font-size: 115%;
|
||||
}
|
||||
|
||||
#top_header #library #libraryTitle {
|
||||
color: #FFFFFF;
|
||||
margin-left: 15px;
|
||||
text-shadow: 0 -1px 0 #485E78;
|
||||
top: 8px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#libraryTitle {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
#top_header #library #developerHome {
|
||||
color: #92979E;
|
||||
right: 15px;
|
||||
top: 8px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#top_header #library a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#top_header #title {
|
||||
background: url("../img/title_background.png") repeat-x 0 0 #8A98A9;
|
||||
border-bottom: 1px solid #B6B6B6;
|
||||
height: 25px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#top_header h1 {
|
||||
font-size: 115%;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: 3px 0 2px;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 #D5D5D5;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#headerButtons {
|
||||
background-color: #D8D8D8;
|
||||
background-image: url("../img/button_bar_background.png");
|
||||
border-bottom: 1px solid #EDEDED;
|
||||
border-top: 1px solid #2B334F;
|
||||
font-size: 8pt;
|
||||
height: 28px;
|
||||
left: 0;
|
||||
list-style: none outside none;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 61px;
|
||||
}
|
||||
|
||||
#headerButtons li {
|
||||
background-repeat: no-repeat;
|
||||
display: inline;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#toc_button button {
|
||||
border-color: #ACACAC;
|
||||
border-style: none solid none none;
|
||||
border-width: 0 1px 0 0;
|
||||
height: 28px;
|
||||
margin: 0;
|
||||
padding-left: 30px;
|
||||
text-align: left;
|
||||
width: 230px;
|
||||
}
|
||||
|
||||
li#jumpto_button {
|
||||
left: 230px;
|
||||
margin-left: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
li#jumpto_button select {
|
||||
height: 22px;
|
||||
margin: 5px 2px 0 10px;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Table of contents */
|
||||
|
||||
#tocContainer.isShowingTOC {
|
||||
border-right: 1px solid #ACACAC;
|
||||
display: block;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#tocContainer {
|
||||
background-color: #E4EBF7;
|
||||
border-top: 1px solid #2B334F;
|
||||
bottom: 0;
|
||||
display: none;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 91px;
|
||||
width: 229px;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc {
|
||||
font-size: 11px;
|
||||
margin: 0;
|
||||
padding: 12px 0 18px;
|
||||
width: 209px;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li {
|
||||
margin: 0;
|
||||
padding: 0 0 7px 30px;
|
||||
text-indent: -15px;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > .sectionName a {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > .sectionName a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc li.children > ul {
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li {
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li ul {
|
||||
list-style: none;
|
||||
margin-right: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc li.children.open > ul {
|
||||
display: block;
|
||||
height: auto;
|
||||
margin-left: -15px;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li {
|
||||
margin-left: 0;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
#tocContainer li ul li {
|
||||
margin-top: 0.583em;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#tocContainer li ul li span.sectionName {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul > li > .sectionName a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#tocContainer > ul#toc > li > ul a {
|
||||
color: #4F4F4F;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Index formatting */
|
||||
|
||||
.index-title {
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.index-column {
|
||||
float: left;
|
||||
width: 30%;
|
||||
min-width: 200px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.index-column ul {
|
||||
margin: 8px 0 0 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.index-column ul li {
|
||||
margin: 0 0 3px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.hierarchy-column {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.hierarchy-column ul {
|
||||
margin: 3px 0 0 15px;
|
||||
}
|
||||
|
||||
.hierarchy-column ul li {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Common formatting elements */
|
||||
|
||||
.title {
|
||||
font-weight: normal;
|
||||
font-size: 215%;
|
||||
margin-top:0;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-weight: normal;
|
||||
font-size: 180%;
|
||||
color: #3C4C6C;
|
||||
border-bottom: 1px solid #5088C5;
|
||||
}
|
||||
|
||||
.subsubtitle {
|
||||
font-weight: normal;
|
||||
font-size: 145%;
|
||||
height: 0.7em;
|
||||
}
|
||||
|
||||
.note {
|
||||
border: 1px solid #5088C5;
|
||||
background-color: white;
|
||||
margin: 1.667em 0 1.75em 0;
|
||||
padding: 0 .667em .083em .750em;
|
||||
}
|
||||
|
||||
.warning {
|
||||
border: 1px solid #5088C5;
|
||||
background-color: #F0F3F7;
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0.3em 0.8em;
|
||||
}
|
||||
|
||||
.bug {
|
||||
border: 1px solid #000;
|
||||
background-color: #ffffcc;
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0.3em 0.8em;
|
||||
}
|
||||
|
||||
.deprecated {
|
||||
color: #F60425;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Common layout */
|
||||
|
||||
.section {
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Object specification section */
|
||||
|
||||
.section-specification {
|
||||
margin-left: 2.5em;
|
||||
margin-right: 2.5em;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.section-specification table {
|
||||
margin-bottom: 0em;
|
||||
border-top: 1px solid #d6e0e5;
|
||||
}
|
||||
|
||||
.section-specification td {
|
||||
vertical-align: top;
|
||||
border-bottom: 1px solid #d6e0e5;
|
||||
border-left-width: 0px;
|
||||
border-right-width: 0px;
|
||||
border-top-width: 0px;
|
||||
padding: .6em;
|
||||
}
|
||||
|
||||
.section-specification .specification-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Tasks section */
|
||||
|
||||
.task-list {
|
||||
list-style-type: none;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.task-list li {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.task-item-suffix {
|
||||
color: #996;
|
||||
font-size: 12px;
|
||||
font-style: italic;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
span.tooltip span.tooltip {
|
||||
font-size: 1.0em;
|
||||
display: none;
|
||||
padding: 0.3em;
|
||||
border: 1px solid #aaa;
|
||||
background-color: #fdfec8;
|
||||
color: #000;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
span.tooltip:hover span.tooltip {
|
||||
display: block;
|
||||
position: absolute;
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Method section */
|
||||
|
||||
.section-method {
|
||||
margin-top: 2.3em;
|
||||
}
|
||||
|
||||
.method-title {
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.method-subtitle {
|
||||
margin-top: 0.7em;
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
|
||||
.method-subsection p {
|
||||
margin-top: 0.4em;
|
||||
margin-bottom: 0.8em;
|
||||
}
|
||||
|
||||
.method-declaration {
|
||||
margin-top:1.182em;
|
||||
margin-bottom:.909em;
|
||||
}
|
||||
|
||||
.method-declaration code {
|
||||
font:14px Courier, Consolas, monospace;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.declaration {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.argument-def {
|
||||
margin-top: 0.3em;
|
||||
margin-bottom: 0.3em;
|
||||
}
|
||||
|
||||
.argument-def dd {
|
||||
margin-left: 1.25em;
|
||||
}
|
||||
|
||||
.see-also-section ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.see-also-section li {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.declared-in-ref {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#tocContainer.hideInXcode {
|
||||
display: none;
|
||||
border: 0px solid black;
|
||||
}
|
||||
|
||||
#top_header.hideInXcode {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#contents.hideInXcode {
|
||||
border: 0px solid black;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.main-navigation, div.navigation-top {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#overview_contents, div#contents.isShowingTOC, div#contents {
|
||||
overflow: visible;
|
||||
position: relative;
|
||||
top: 0px;
|
||||
border: none;
|
||||
left: 0;
|
||||
}
|
||||
#tocContainer.isShowingTOC {
|
||||
display: none;
|
||||
}
|
||||
nav {
|
||||
display: none;
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Google Analytics SDK for iOS Hierarchy</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.1 (build 858)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="index.html">Google Analytics SDK for iOS </a></h1>
|
||||
<a id="developerHome" href="index.html">Google Inc</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">Google Analytics SDK for iOS Hierarchy</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar"></ul>
|
||||
</header>
|
||||
<article>
|
||||
<div id="overview_contents" role="main">
|
||||
<div class="main-navigation navigation-top">
|
||||
<a href="index.html">Previous</a>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">Google Analytics SDK for iOS Hierarchy</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
<div class="index-column hierarchy-column">
|
||||
<h2 class="index-title">Class Hierarchy</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>NSObject
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/GAI.html">GAI</a></li>
|
||||
|
||||
<li><a href="Classes/GAITransaction.html">GAITransaction</a></li>
|
||||
|
||||
<li><a href="Classes/GAITransactionItem.html">GAITransactionItem</a></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>UIViewController
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/GAITrackedViewController.html">GAITrackedViewController</a></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="index-column">
|
||||
|
||||
<h2 class="index-title">Protocol References</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="Protocols/GAITracker.html">GAITracker</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<a href="index.html">Previous</a>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2013 Google Inc. All rights reserved. (Last updated: 2013-01-08)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.1 (build 858)</a>.</span></p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 115 B |
After Width: | Height: | Size: 131 B |
After Width: | Height: | Size: 119 B |
After Width: | Height: | Size: 101 B |
|
@ -0,0 +1,84 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Google Analytics SDK for iOS Reference</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/styles.css" media="all" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="css/stylesPrint.css" />
|
||||
<meta name="generator" content="appledoc 2.1 (build 858)" />
|
||||
</head>
|
||||
<body>
|
||||
<header id="top_header">
|
||||
<div id="library" class="hideInXcode">
|
||||
<h1><a id="libraryTitle" href="index.html">Google Analytics SDK for iOS </a></h1>
|
||||
<a id="developerHome" href="index.html">Google Inc</a>
|
||||
</div>
|
||||
|
||||
<div id="title" role="banner">
|
||||
<h1 class="hideInXcode">Google Analytics SDK for iOS Reference</h1>
|
||||
</div>
|
||||
<ul id="headerButtons" role="toolbar"></ul>
|
||||
</header>
|
||||
<article>
|
||||
<div id="overview_contents" role="main">
|
||||
<div class="main-navigation navigation-top">
|
||||
<a href="hierarchy.html">Next</a>
|
||||
</div>
|
||||
<div id="header">
|
||||
<div class="section-header">
|
||||
<h1 class="title title-header">Google Analytics SDK for iOS Reference</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="index-column">
|
||||
<h2 class="index-title">Class References</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="Classes/GAI.html">GAI</a></li>
|
||||
|
||||
<li><a href="Classes/GAITrackedViewController.html">GAITrackedViewController</a></li>
|
||||
|
||||
<li><a href="Classes/GAITransaction.html">GAITransaction</a></li>
|
||||
|
||||
<li><a href="Classes/GAITransactionItem.html">GAITransactionItem</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="index-column">
|
||||
|
||||
<h2 class="index-title">Protocol References</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="Protocols/GAITracker.html">GAITracker</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="main-navigation navigation-bottom">
|
||||
<a href="hierarchy.html">Next</a>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<hr />
|
||||
<div class="footer-copyright">
|
||||
<p><span class="copyright">© 2013 Google Inc. All rights reserved. (Last updated: 2013-01-08)</span><br />
|
||||
|
||||
<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.1 (build 858)</a>.</span></p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</body>
|
||||
</html>
|
|
@ -1,232 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/1998/REC-html40-19980424/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>GANTracker.h</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ascii">
|
||||
<meta name="generator" content="HeaderDoc">
|
||||
<meta name="xcode-display" content="render">
|
||||
<style><!--
|
||||
#tocMenu {
|
||||
display: block;
|
||||
position:fixed;
|
||||
top:0px;
|
||||
left:0px;
|
||||
width:210px;
|
||||
height:100%;
|
||||
background:transparent;
|
||||
}
|
||||
#bodyText {
|
||||
margin-left: 210px;
|
||||
}
|
||||
--></style>
|
||||
<script language="JavaScript" type="text/javascript"><!--
|
||||
function hidetoc() {
|
||||
var origURL = parent.document.URL;
|
||||
var contentURL = origURL.substring(origURL.indexOf('?')+1, origURL.length);
|
||||
if (contentURL.length == origURL.length) {
|
||||
jumpPos = origURL.substring(origURL.indexOf('#')+1, origURL.length);
|
||||
}
|
||||
if (contentURL == "hidetoc") {
|
||||
var toc = document.getElementById('tocMenu');
|
||||
var body = document.getElementById('bodyText');
|
||||
if (toc && body) {
|
||||
toc.style.display = 'none';
|
||||
body.style.marginLeft = '0px';
|
||||
}
|
||||
}
|
||||
}
|
||||
--></script><style type="text/css"><!--.keyword {background:#ffffff; color:#761550;}.template {background:#ffffff; color:#761550;}.number {background: #ffffff; color:#0000ff;}.function {background:#ffffff; color:#000000;}.string {background: #ffffff; color:#891315;}.preprocessor {background:#ffffff; color:#236e25}.comment {background:#ffffff; color:#236e25}.char {background: #ffffff; color:#0000ff;}.var {background:#ffffff; color:#000000;}.type {background:#ffffff; color:#761550;}.param {background:#ffffff; color:#000000;}a:link {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:active {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}h4 {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: tiny; font-weight: bold;}body {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: 10pt;}.list_indent { margin-left: 40px; }.declaration_indent { margin-left: 40px; }.param_indent { margin-left: 40px; }.group_indent { margin-left: 40px; }.group_desc_indent { margin-left: 20px; }.warning_indent { margin-left: 40px; }.important_indent { margin-left: 40px; }.hd_tocAccess { font-style: italic; font-size: 10px; font-weight: normal; color: #303030; }--></style>
|
||||
</head>
|
||||
<body bgcolor="#ffffff" onload="hidetoc();">
|
||||
|
||||
<!-- headerDoc=Header; uid=//apple_ref/doc/header/GANTracker.h; name=GANTracker.h -->
|
||||
<a name="//apple_ref/doc/header/GANTracker.h"></a>
|
||||
<div id="tocMenu">
|
||||
<iframe id="toc_content" name="toc_content" src="toc.html" width="210" height="100%" align="left" frameborder="0">This document set is best viewed in a browser that supports iFrames.</iframe>
|
||||
</div>
|
||||
<div id="bodyText">
|
||||
<a name="top"></a>
|
||||
<hr>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h1><a name="GANTracker.h">GANTracker.h</a></h1>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p><b>Version:</b> 1.5<br></p>
|
||||
<div class="declaration_indent">
|
||||
</div>
|
||||
<h5 class="tight">
|
||||
<font face="Lucida Grande,Helvetica,Arial">Discussion</font>
|
||||
</h5>
|
||||
<!-- begin discussion --><p>
|
||||
Google Analytics iOS SDK</p>
|
||||
<!-- end discussion -->
|
||||
<p></p>
|
||||
<hr>
|
||||
<br><a name="HeaderDoc_classes"></a>
|
||||
<h2>Classes</h2>
|
||||
<dl>
|
||||
<dt><tt><a href="Classes/GANTracker/index.html#//apple_ref/occ/cl/GANTracker" target="_top">GANTracker</a></tt></dt>
|
||||
<dd><p>Google Analytics tracking class. Tracks pageviews, events, and
|
||||
transactions by storing them in a persistent store and dispatching them in the
|
||||
background to Google Analytics.
|
||||
</p></dd>
|
||||
</dl>
|
||||
<a name="HeaderDoc_protocols"></a>
|
||||
<h2>Protocols</h2>
|
||||
<dl>
|
||||
<dt><tt><a href="Protocols/GANTrackerDelegate/index.html#//apple_ref/occ/intf/GANTrackerDelegate" target="_top">GANTrackerDelegate</a></tt></dt>
|
||||
<dd><p>Google Analytics tracker delegate. This delegate gets notified when
|
||||
the tracker dispatches a hit successfully, or when there was an error
|
||||
dispatching the hit. All delegate methods are optional.
|
||||
</p></dd>
|
||||
</dl>
|
||||
<hr>
|
||||
<br><a name="HeaderDoc_constants"></a>
|
||||
<h2>Constants</h2>
|
||||
<dl>
|
||||
<dt><tt><a href="index.html#//apple_ref/c/data/kGANTrackerErrorDomain" target="_top">kGANTrackerErrorDomain</a></tt></dt>
|
||||
<dd><p>The error domain for errors originating in the Google Analytics iOS
|
||||
SDK. All errors generated by the Google Analytics iOS SDK will belong to
|
||||
this domain.
|
||||
</p></dd>
|
||||
<dt><tt><a href="index.html#//apple_ref/c/data/kGANMaxCustomVariables" target="_top">kGANMaxCustomVariables</a></tt></dt>
|
||||
<dd>
|
||||
<p>The maximum number of custom variables the SDK can support. Custom
|
||||
variable indices must be between 1 and this value, inclusive.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><tt><a href="index.html#//apple_ref/c/data/kGANMaxCustomVariableLength" target="_top">kGANMaxCustomVariableLength</a></tt></dt>
|
||||
<dd><p>The maximum length of a custom variable name or value. The length of
|
||||
custom variable names and values must not exceed this value.
|
||||
</p></dd>
|
||||
</dl>
|
||||
<hr>
|
||||
<!-- headerDoc=data; uid=//apple_ref/c/data/kGANTrackerErrorDomain; name=kGANTrackerErrorDomain --><a name="//apple_ref/c/data/kGANTrackerErrorDomain"></a>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h3><a name="kGANTrackerErrorDomain">kGANTrackerErrorDomain</a></h3>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p><!-- begin abstract --></p>
|
||||
<p>The error domain for errors originating in the Google Analytics iOS
|
||||
SDK. All errors generated by the Google Analytics iOS SDK will belong to
|
||||
this domain.
|
||||
<!-- end abstract --></p>
|
||||
<p></p>
|
||||
<div class="declaration_indent">
|
||||
<pre><span class="keyword">extern</span> <!-- a logicalPath="//apple_ref/c/cl/NSString //apple_ref/c/tdef/NSString //apple_ref/c/tag/NSString //apple_ref/c/econst/NSString //apple_ref/c/struct/NSString //apple_ref/c/clconst/NSString //apple_ref/c/intf/NSString" --><span class="type">NSString</span><!-- /a --><span class="type">*</span> <span class="keyword">const</span> <a href="index.html#//apple_ref/c/data/kGANTrackerErrorDomain" logicalPath="//apple_ref/c/econst/kGANTrackerErrorDomain //apple_ref/c/data/kGANTrackerErrorDomain" target="_top"><span class="var">kGANTrackerErrorDomain</span></a>; </pre>
|
||||
</div>
|
||||
<p></p>
|
||||
<hr>
|
||||
<!-- headerDoc=data; uid=//apple_ref/c/data/kGANMaxCustomVariables; name=kGANMaxCustomVariables --><a name="//apple_ref/c/data/kGANMaxCustomVariables"></a>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h3><a name="kGANMaxCustomVariables">kGANMaxCustomVariables</a></h3>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p><!-- begin abstract --></p>
|
||||
<p>The maximum number of custom variables the SDK can support. Custom
|
||||
variable indices must be between 1 and this value, inclusive.
|
||||
</p>
|
||||
<!-- end abstract -->
|
||||
<p></p>
|
||||
<div class="declaration_indent">
|
||||
<pre><span class="keyword">extern</span> <span class="keyword">const</span> <!-- a logicalPath="//apple_ref/c/econst/NSUInteger //apple_ref/c/data/NSUInteger" --><span class="var">NSUInteger</span><!-- /a --> <a href="index.html#//apple_ref/c/data/kGANMaxCustomVariables" logicalPath="//apple_ref/c/econst/kGANMaxCustomVariables //apple_ref/c/data/kGANMaxCustomVariables" target="_top"><span class="var">kGANMaxCustomVariables</span></a>; </pre>
|
||||
</div>
|
||||
<h5 class="tight">
|
||||
<font face="Lucida Grande,Helvetica,Arial">Discussion</font>
|
||||
</h5>
|
||||
<!-- begin discussion --><p>Standard accounts support up to 5 custom variables, while premium
|
||||
accounts support up to 50 custom variables. The SDK will accept custom
|
||||
variable indices higher than 5, but unless the account is a premium account,
|
||||
those custom variables will not be processed.
|
||||
<!-- end discussion -->
|
||||
</p>
|
||||
<p></p>
|
||||
<hr>
|
||||
<!-- headerDoc=data; uid=//apple_ref/c/data/kGANMaxCustomVariableLength; name=kGANMaxCustomVariableLength --><a name="//apple_ref/c/data/kGANMaxCustomVariableLength"></a>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h3><a name="kGANMaxCustomVariableLength">kGANMaxCustomVariableLength</a></h3>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p><!-- begin abstract --></p>
|
||||
<p>The maximum length of a custom variable name or value. The length of
|
||||
custom variable names and values must not exceed this value.
|
||||
<!-- end abstract --></p>
|
||||
<p></p>
|
||||
<div class="declaration_indent">
|
||||
<pre><span class="keyword">extern</span> <span class="keyword">const</span> <!-- a logicalPath="//apple_ref/c/econst/NSUInteger //apple_ref/c/data/NSUInteger" --><span class="var">NSUInteger</span><!-- /a --> <a href="index.html#//apple_ref/c/data/kGANMaxCustomVariableLength" logicalPath="//apple_ref/c/econst/kGANMaxCustomVariableLength //apple_ref/c/data/kGANMaxCustomVariableLength" target="_top"><span class="var">kGANMaxCustomVariableLength</span></a>; </pre>
|
||||
</div>
|
||||
<p></p>
|
||||
<a name="HeaderDoc_datatypes"></a>
|
||||
<h2>Typedefs</h2>
|
||||
<dl>
|
||||
<dt><tt><a href="index.html#//apple_ref/c/tdef/GANErrorCode" target="_top">GANErrorCode</a></tt></dt>
|
||||
<dd></dd>
|
||||
<dt><tt><a href="index.html#//apple_ref/c/tdef/GANCVScope" target="_top">GANCVScope</a></tt></dt>
|
||||
<dd>
|
||||
<p>Custom variable scope enumeration.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<hr>
|
||||
<!-- headerDoc=tdef; uid=//apple_ref/c/tdef/GANErrorCode; name=GANErrorCode --><a name="//apple_ref/c/tdef/GANErrorCode"></a>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h3><a name="GANErrorCode">GANErrorCode</a></h3>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p></p>
|
||||
<div class="declaration_indent">
|
||||
<pre><span class="keyword">typedef</span> <span class="keyword">enum</span> {
|
||||
<span class="comment">// This error code is returned when input to a method is incorrect.</span>
|
||||
<!-- a logicalPath="//apple_ref/c/econst/kGANTrackerInvalidInputError //apple_ref/c/data/kGANTrackerInvalidInputError" --><span class="var">kGANTrackerInvalidInputError</span><!-- /a --> = <span class="number">0xbade7a9</span>,
|
||||
<span class="comment">// This error code is returned when the number of hits generated in a session</span>
|
||||
<span class="comment">// exceeds the limit (currently 500).</span>
|
||||
<!-- a logicalPath="//apple_ref/c/econst/kGANTrackerEventsPerSessionLimitError //apple_ref/c/data/kGANTrackerEventsPerSessionLimitError" --><span class="var">kGANTrackerEventsPerSessionLimitError</span><!-- /a --> = <span class="number">0xbad5704e</span>,
|
||||
<span class="comment">// This error code is returned if the method called requires that the tracker</span>
|
||||
<span class="comment">// be started.</span>
|
||||
<!-- a logicalPath="//apple_ref/c/econst/kGANTrackerNotStartedError //apple_ref/c/data/kGANTrackerNotStartedError" --><span class="var">kGANTrackerNotStartedError</span><!-- /a --> = <span class="number">0xbada55</span>,
|
||||
<span class="comment">// This error code is returned if the method call resulted in some sort of</span>
|
||||
<span class="comment">// database error.</span>
|
||||
<!-- a logicalPath="//apple_ref/c/econst/kGANTrackerDatabaseError //apple_ref/c/data/kGANTrackerDatabaseError" --><span class="var">kGANTrackerDatabaseError</span><!-- /a --> = <span class="number">0xbadbaddb</span>
|
||||
} <!-- a logicalPath="//apple_ref/c/econst/GANErrorCode //apple_ref/c/data/GANErrorCode" --><span class="var">GANErrorCode</span><!-- /a -->; </pre>
|
||||
</div>
|
||||
<h5 class="tight">
|
||||
<font face="Lucida Grande,Helvetica,Arial">Discussion</font>
|
||||
</h5>
|
||||
<!-- begin discussion --><p>Error codes which may be returned by various GANTracker methods.<!-- end discussion -->
|
||||
</p>
|
||||
<p></p>
|
||||
<hr>
|
||||
<!-- headerDoc=tdef; uid=//apple_ref/c/tdef/GANCVScope; name=GANCVScope --><a name="//apple_ref/c/tdef/GANCVScope"></a>
|
||||
<table border="0" cellpadding="2" cellspacing="2" width="300"><tr><td valign="top" height="12" colspan="5">
|
||||
<h3><a name="GANCVScope">GANCVScope</a></h3>
|
||||
</td></tr></table>
|
||||
<hr>
|
||||
<p><!-- begin abstract --></p>
|
||||
<p>Custom variable scope enumeration.
|
||||
</p>
|
||||
<!-- end abstract -->
|
||||
<p></p>
|
||||
<div class="declaration_indent">
|
||||
<pre><span class="keyword">typedef</span> <span class="keyword">enum</span> {
|
||||
<!-- a logicalPath="//apple_ref/c/econst/kGANVisitorScope //apple_ref/c/data/kGANVisitorScope" --><span class="var">kGANVisitorScope</span><!-- /a --> = <span class="var">1U</span>,
|
||||
<!-- a logicalPath="//apple_ref/c/econst/kGANSessionScope //apple_ref/c/data/kGANSessionScope" --><span class="var">kGANSessionScope</span><!-- /a --> = <span class="var">2U</span>,
|
||||
<!-- a logicalPath="//apple_ref/c/econst/kGANPageScope //apple_ref/c/data/kGANPageScope" --><span class="var">kGANPageScope</span><!-- /a --> = <span class="var">3U</span>
|
||||
} <!-- a logicalPath="//apple_ref/c/econst/GANCVScope //apple_ref/c/data/GANCVScope" --><span class="var">GANCVScope</span><!-- /a -->; </pre>
|
||||
</div>
|
||||
<h5 class="tight">
|
||||
<font face="Lucida Grande,Helvetica,Arial">Discussion</font>
|
||||
</h5>
|
||||
<!-- begin discussion --><p>Possible values are visitor scope, session scope, and page scope.
|
||||
Visitor and session scoped custom variables are stored for later use. Session
|
||||
and page scoped custom variables are attached to each event. Visitor scoped
|
||||
custom variables are sent only on the first event for a session.
|
||||
<!-- end discussion -->
|
||||
</p>
|
||||
<p></p>
|
||||
<p></p>
|
||||
<p>© Copyright 2009 Google Inc. All rights reserved.
|
||||
Last Updated: Wednesday, April 11, 2012
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,49 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/1998/REC-html40-19980424/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="ROBOTS" content="NOINDEX">
|
||||
<title>Documentation for GANTracker.h</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ascii">
|
||||
<meta name="generator" content="HeaderDoc">
|
||||
<meta name="xcode-display" content="render">
|
||||
<style type="text/css"><!--.keyword {background:#ffffff; color:#761550;}.template {background:#ffffff; color:#761550;}.number {background: #ffffff; color:#0000ff;}.function {background:#ffffff; color:#000000;}.string {background: #ffffff; color:#891315;}.preprocessor {background:#ffffff; color:#236e25}.comment {background:#ffffff; color:#236e25}.char {background: #ffffff; color:#0000ff;}.var {background:#ffffff; color:#000000;}.type {background:#ffffff; color:#761550;}.param {background:#ffffff; color:#000000;}a:link {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #0000ff;}a:visited:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:active {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}a:hover {text-decoration: underline; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: small; color: #ff6600;}h4 {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: tiny; font-weight: bold;}body {text-decoration: none; font-family: lucida grande, geneva, helvetica, arial, sans-serif; font-size: 10pt;}.list_indent { margin-left: 40px; }.declaration_indent { margin-left: 40px; }.param_indent { margin-left: 40px; }.group_indent { margin-left: 40px; }.group_desc_indent { margin-left: 20px; }.warning_indent { margin-left: 40px; }.important_indent { margin-left: 40px; }.hd_tocAccess { font-style: italic; font-size: 10px; font-weight: normal; color: #303030; }--></style>
|
||||
</head>
|
||||
<body bgcolor="#edf2f6" link="#000099" vlink="#660066" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
|
||||
<font size="-2"><a href="../masterTOC.html" target="_top" headerdoc="topLink">[Top]</a></font><br><table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr height="51" width="100%" bgcolor="#466C9B"><td width="100%"> </td></tr>
|
||||
<tr><td>
|
||||
<br><table border="0" cellpadding="0" cellspacing="2" width="148">
|
||||
<tr>
|
||||
<td width="15"> </td>
|
||||
<td colspan="2"><font size="5" color="#330066"><b>Header:</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="15"> </td>
|
||||
<td width="15"> </td>
|
||||
<td><b><font size="+1">GANTracker.h</font></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="2">
|
||||
<h4>
|
||||
<br><nobr><a href="index.html#top" target="doc">Introduction</a></nobr>
|
||||
</h4>
|
||||
<h4><a href="index.html#HeaderDoc_typedefs" target="doc">Defined Types
|
||||
</a></h4>
|
||||
|
||||
<nobr>      <a href="index.html#//apple_ref/c/tdef/GANErrorCode" target="doc">GANErrorCode</a></nobr><br><nobr>      <a href="index.html#//apple_ref/c/tdef/GANCVScope" target="doc">GANCVScope</a></nobr><br><h4><a href="index.html#HeaderDoc_constants" target="doc">Constants
|
||||
</a></h4>
|
||||
|
||||
<nobr>      <a href="index.html#//apple_ref/c/data/kGANTrackerErrorDomain" target="doc">kGANTrackerErrorDomain</a></nobr><br><nobr>      <a href="index.html#//apple_ref/c/data/kGANMaxCustomVariables" target="doc">kGANMaxCustomVariables</a></nobr><br><nobr>      <a href="index.html#//apple_ref/c/data/kGANMaxCustomVariableLength" target="doc">kGANMaxCustomVariableLength</a></nobr><br><h4><a href="index.html#HeaderDoc_classes" target="doc">Classes</a></h4>
|
||||
<nobr>      <a href="Classes/GANTracker/index.html#" target="doc">GANTracker</a></nobr><br><h4><a href="index.html#HeaderDoc_protocols" target="doc">Protocols</a></h4>
|
||||
<nobr>      <a href="Protocols/GANTrackerDelegate/index.html#" target="doc">GANTrackerDelegate</a></nobr><br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<p>
|
||||
</p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
|
@ -1,30 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.google.analytics.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainWindow</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1,298 +0,0 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
119B609915349797009DDB8E /* SecondViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 119B609815349797009DDB8E /* SecondViewController.m */; };
|
||||
119B60A615349A45009DDB8E /* libGoogleAnalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 119B60A515349A45009DDB8E /* libGoogleAnalytics.a */; };
|
||||
119B60AD15349F56009DDB8E /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 119B60AC15349F56009DDB8E /* libsqlite3.dylib */; };
|
||||
119B60B215349F68009DDB8E /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 119B60B115349F68009DDB8E /* CFNetwork.framework */; };
|
||||
1D3623260D0F684500981E51 /* BasicExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* BasicExampleAppDelegate.m */; };
|
||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
|
||||
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
|
||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
|
||||
28216C970DB411BC00E5133A /* FirstViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28216C960DB411BC00E5133A /* FirstViewController.m */; };
|
||||
282CCBFE0DB6C98000C4EA27 /* SecondView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 282CCBFD0DB6C98000C4EA27 /* SecondView.xib */; };
|
||||
2840D7CE1179279E00D7F93C /* FirstView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2840D7CD1179279E00D7F93C /* FirstView.xib */; };
|
||||
288765080DF74369002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765070DF74369002DB57D /* CoreGraphics.framework */; };
|
||||
28AD73880D9D96C1002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD73870D9D96C1002E5188 /* MainWindow.xib */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
119B609715349797009DDB8E /* SecondViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecondViewController.h; sourceTree = "<group>"; };
|
||||
119B609815349797009DDB8E /* SecondViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecondViewController.m; sourceTree = "<group>"; };
|
||||
119B60A415349A45009DDB8E /* GANTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GANTracker.h; path = ../../Library/GANTracker.h; sourceTree = SOURCE_ROOT; };
|
||||
119B60A515349A45009DDB8E /* libGoogleAnalytics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libGoogleAnalytics.a; path = ../../Library/libGoogleAnalytics.a; sourceTree = SOURCE_ROOT; };
|
||||
119B60AC15349F56009DDB8E /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
|
||||
119B60B115349F68009DDB8E /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
|
||||
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
1D3623240D0F684500981E51 /* BasicExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BasicExampleAppDelegate.h; sourceTree = "<group>"; };
|
||||
1D3623250D0F684500981E51 /* BasicExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BasicExampleAppDelegate.m; sourceTree = "<group>"; };
|
||||
1D6058910D05DD3D006BFB54 /* BasicExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BasicExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
28216C950DB411BC00E5133A /* FirstViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FirstViewController.h; sourceTree = "<group>"; };
|
||||
28216C960DB411BC00E5133A /* FirstViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FirstViewController.m; sourceTree = "<group>"; };
|
||||
282CCBFD0DB6C98000C4EA27 /* SecondView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SecondView.xib; sourceTree = "<group>"; };
|
||||
2840D7CD1179279E00D7F93C /* FirstView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FirstView.xib; sourceTree = "<group>"; };
|
||||
288765070DF74369002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||
28A0AB4B0D9B1048005BE974 /* BasicExample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BasicExample_Prefix.pch; sourceTree = "<group>"; };
|
||||
28AD73870D9D96C1002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
|
||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
8D1107310486CEB800E47090 /* BasicExample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "BasicExample-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
|
||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
|
||||
288765080DF74369002DB57D /* CoreGraphics.framework in Frameworks */,
|
||||
119B60A615349A45009DDB8E /* libGoogleAnalytics.a in Frameworks */,
|
||||
119B60AD15349F56009DDB8E /* libsqlite3.dylib in Frameworks */,
|
||||
119B60B215349F68009DDB8E /* CFNetwork.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
080E96DDFE201D6D7F000001 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1D3623240D0F684500981E51 /* BasicExampleAppDelegate.h */,
|
||||
1D3623250D0F684500981E51 /* BasicExampleAppDelegate.m */,
|
||||
28216C950DB411BC00E5133A /* FirstViewController.h */,
|
||||
28216C960DB411BC00E5133A /* FirstViewController.m */,
|
||||
119B609715349797009DDB8E /* SecondViewController.h */,
|
||||
119B609815349797009DDB8E /* SecondViewController.m */,
|
||||
);
|
||||
path = Classes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
119B60A315349A30009DDB8E /* Google Analytics SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
119B60A415349A45009DDB8E /* GANTracker.h */,
|
||||
119B60A515349A45009DDB8E /* libGoogleAnalytics.a */,
|
||||
);
|
||||
name = "Google Analytics SDK";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FACFE9D520D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1D6058910D05DD3D006BFB54 /* BasicExample.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97314FDCFA39411CA2CEA /* BasicExample */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
119B60A315349A30009DDB8E /* Google Analytics SDK */,
|
||||
080E96DDFE201D6D7F000001 /* Classes */,
|
||||
29B97315FDCFA39411CA2CEA /* Other Sources */,
|
||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
||||
);
|
||||
name = BasicExample;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
28A0AB4B0D9B1048005BE974 /* BasicExample_Prefix.pch */,
|
||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
||||
);
|
||||
name = "Other Sources";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2840D7CD1179279E00D7F93C /* FirstView.xib */,
|
||||
282CCBFD0DB6C98000C4EA27 /* SecondView.xib */,
|
||||
28AD73870D9D96C1002E5188 /* MainWindow.xib */,
|
||||
8D1107310486CEB800E47090 /* BasicExample-Info.plist */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
|
||||
1D30AB110D05D00D00671497 /* Foundation.framework */,
|
||||
288765070DF74369002DB57D /* CoreGraphics.framework */,
|
||||
119B60AC15349F56009DDB8E /* libsqlite3.dylib */,
|
||||
119B60B115349F68009DDB8E /* CFNetwork.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
1D6058900D05DD3D006BFB54 /* BasicExample */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "BasicExample" */;
|
||||
buildPhases = (
|
||||
1D60588D0D05DD3D006BFB54 /* Resources */,
|
||||
1D60588E0D05DD3D006BFB54 /* Sources */,
|
||||
1D60588F0D05DD3D006BFB54 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = BasicExample;
|
||||
productName = BasicExample;
|
||||
productReference = 1D6058910D05DD3D006BFB54 /* BasicExample.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "BasicExample" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 29B97314FDCFA39411CA2CEA /* BasicExample */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
1D6058900D05DD3D006BFB54 /* BasicExample */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
1D60588D0D05DD3D006BFB54 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
28AD73880D9D96C1002E5188 /* MainWindow.xib in Resources */,
|
||||
282CCBFE0DB6C98000C4EA27 /* SecondView.xib in Resources */,
|
||||
2840D7CE1179279E00D7F93C /* FirstView.xib in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
1D60588E0D05DD3D006BFB54 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */,
|
||||
1D3623260D0F684500981E51 /* BasicExampleAppDelegate.m in Sources */,
|
||||
28216C970DB411BC00E5133A /* FirstViewController.m in Sources */,
|
||||
119B609915349797009DDB8E /* SecondViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
1D6058940D05DD3E006BFB54 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = BasicExample_Prefix.pch;
|
||||
INFOPLIST_FILE = "BasicExample-Info.plist";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../Library\"",
|
||||
);
|
||||
PRODUCT_NAME = BasicExample;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
1D6058950D05DD3E006BFB54 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = BasicExample_Prefix.pch;
|
||||
INFOPLIST_FILE = "BasicExample-Info.plist";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../Library\"",
|
||||
);
|
||||
PRODUCT_NAME = BasicExample;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
C01FCF4F08A954540054247B /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PREBINDING = NO;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
C01FCF5008A954540054247B /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||
PREBINDING = NO;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "BasicExample" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1D6058940D05DD3E006BFB54 /* Debug */,
|
||||
1D6058950D05DD3E006BFB54 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "BasicExample" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
C01FCF4F08A954540054247B /* Debug */,
|
||||
C01FCF5008A954540054247B /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
//
|
||||
// BasicExample_Prefix.pch
|
||||
// Google Analytics iOS SDK.
|
||||
//
|
||||
// Copyright 2009 Google Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
#endif
|
|
@ -1,21 +0,0 @@
|
|||
//
|
||||
// BasicExampleAppDelegate.h
|
||||
// Google Analytics iOS SDK.
|
||||
//
|
||||
// Copyright 2009 Google Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "GANTracker.h"
|
||||
|
||||
@interface BasicExampleAppDelegate : NSObject <UIApplicationDelegate,
|
||||
UITabBarControllerDelegate,
|
||||
GANTrackerDelegate> {
|
||||
UIWindow *window_;
|
||||
UITabBarController *tabBarController_;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UIWindow *window;
|
||||
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
|
||||
|
||||
@end
|
|
@ -1,68 +0,0 @@
|
|||
//
|
||||
// BasicExampleAppDelegate.m
|
||||
// Google Analytics iOS SDK.
|
||||
//
|
||||
// Copyright 2009 Google Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "BasicExampleAppDelegate.h"
|
||||
|
||||
// **************************************************************************
|
||||
// Replace this string with your Analytics account ID!
|
||||
// **************************************************************************
|
||||
static NSString *const kAnalyticsAccountId = @"UA-00000000-1";
|
||||
// Dispatch period in seconds.
|
||||
static const NSInteger kDispatchPeriodSeconds = 10;
|
||||
|
||||
@implementation BasicExampleAppDelegate
|
||||
|
||||
@synthesize window = window_;
|
||||
@synthesize tabBarController = tabBarController_;
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Application lifecycle
|
||||
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
[[GANTracker sharedTracker] startTrackerWithAccountID:kAnalyticsAccountId
|
||||
dispatchPeriod:kDispatchPeriodSeconds
|
||||
delegate:self];
|
||||
|
||||
NSError *error = nil;
|
||||
if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1
|
||||
name:@"iOS1"
|
||||
value:@"iv1"
|
||||
withError:&error]) {
|
||||
NSLog(@"setCustomVariableAtIndex failed: %@", error);
|
||||
}
|
||||
|
||||
[self.window addSubview:self.tabBarController.view];
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark GANTrackerDelegate methods
|
||||
|
||||
- (void)hitDispatched:(NSString *)hitString {
|
||||
NSLog(@"Hit Dispatched: %@", hitString);
|
||||
}
|
||||
|
||||
- (void)trackerDispatchDidComplete:(GANTracker *)tracker
|
||||
eventsDispatched:(NSUInteger)hitsDispatched
|
||||
eventsFailedDispatch:(NSUInteger)hitsFailedDispatch {
|
||||
NSLog(@"Dispatch completed (%u OK, %u failed)",
|
||||
hitsDispatched, hitsFailedDispatch);
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Memory management
|
||||
|
||||
- (void)dealloc {
|
||||
[tabBarController_ release];
|
||||
[window_ release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,20 +0,0 @@
|
|||
//
|
||||
// FirstViewController.h
|
||||
// BasicExample
|
||||
//
|
||||
// Created by Farooq Mela on 4/10/12.
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface FirstViewController : UIViewController {
|
||||
@private
|
||||
UIButton *button_;
|
||||
}
|
||||
|
||||
@property (nonatomic, assign) IBOutlet UIButton *button;
|
||||
|
||||
- (IBAction)buttonClicked:(id)sender;
|
||||
|
||||
@end
|
|
@ -1,31 +0,0 @@
|
|||
//
|
||||
// FirstViewController.m
|
||||
// BasicExample
|
||||
//
|
||||
// Created by Farooq Mela on 4/10/12.
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "FirstViewController.h"
|
||||
#import "GANTracker.h"
|
||||
|
||||
@implementation FirstViewController
|
||||
|
||||
@synthesize button = button_;
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
NSLog(@"First View appeared!");
|
||||
[[GANTracker sharedTracker] trackPageview:@"FirstView" withError:nil];
|
||||
[super viewDidAppear:animated];
|
||||
}
|
||||
|
||||
- (IBAction)buttonClicked:(id)sender {
|
||||
NSLog(@"First View button clicked!");
|
||||
[[GANTracker sharedTracker] trackEvent:@"Button"
|
||||
action:@"Click"
|
||||
label:@"First Button"
|
||||
value:-1
|
||||
withError:nil];
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,20 +0,0 @@
|
|||
//
|
||||
// SecondViewController.h
|
||||
// BasicExample
|
||||
//
|
||||
// Created by Farooq Mela on 4/10/12.
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface SecondViewController : UIViewController {
|
||||
@private
|
||||
UIButton *button_;
|
||||
}
|
||||
|
||||
@property (nonatomic, assign) IBOutlet UIButton *button;
|
||||
|
||||
- (IBAction)buttonClicked:(id)sender;
|
||||
|
||||
@end
|
|
@ -1,31 +0,0 @@
|
|||
//
|
||||
// SecondViewController.m
|
||||
// BasicExample
|
||||
//
|
||||
// Created by Farooq Mela on 4/10/12.
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SecondViewController.h"
|
||||
#import "GANTracker.h"
|
||||
|
||||
@implementation SecondViewController
|
||||
|
||||
@synthesize button = button_;
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
NSLog(@"Second View appeared!");
|
||||
[[GANTracker sharedTracker] trackPageview:@"SecondView" withError:nil];
|
||||
[super viewDidAppear:animated];
|
||||
}
|
||||
|
||||
- (IBAction)buttonClicked:(id)sender {
|
||||
NSLog(@"Second View button clicked!");
|
||||
[[GANTracker sharedTracker] trackEvent:@"Button"
|
||||
action:@"Click"
|
||||
label:@"Second Button"
|
||||
value:-1
|
||||
withError:nil];
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,476 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1056</int>
|
||||
<string key="IBDocument.SystemVersion">11D50b</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">823</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">132</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="263589821">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUILabel" id="483052203">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">306</int>
|
||||
<string key="NSFrame">{{54, 20}, {211, 43}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">First View</string>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">36</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
<object class="IBUIButton" id="437796137">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 354}, {280, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:84</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Press Me!</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="1046337315">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 411}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="IBUIBackgroundColor" ref="1046337315"/>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<object class="IBUISimulatedTabBarMetrics" key="IBUISimulatedBottomBarMetrics"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">button</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="437796137"/>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">buttonClicked:</string>
|
||||
<reference key="source" ref="437796137"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">10</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="483052203"/>
|
||||
<reference ref="437796137"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="263589821"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="483052203"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="437796137"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>5.IBPluginDependency</string>
|
||||
<string>5.IBViewBoundsToFrameTransform</string>
|
||||
<string>8.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>FirstViewController</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{774, 526}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABCWAAAwzMAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">10</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">FirstViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">buttonClicked:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">buttonClicked:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">buttonClicked:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">button</string>
|
||||
<string key="NS.object.0">UIButton</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">button</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">button</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/FirstViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="180131353">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIButton</string>
|
||||
<string key="superclassName">UIControl</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIControl</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UILabel</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIResponder</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<reference key="sourceIdentifier" ref="180131353"/>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchBar</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchDisplayController</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="1056" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3100" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">BasicExample.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">132</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,585 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1056</int>
|
||||
<string key="IBDocument.SystemVersion">11D50b</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">823</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">132</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="106"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="841351856">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="532797962">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUICustomObject" id="664661524">
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIWindow" id="380026005">
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">1316</int>
|
||||
<object class="NSPSMatrix" key="NSFrameMatrix"/>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAxIDEAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIResizesToFullScreen">YES</bool>
|
||||
</object>
|
||||
<object class="IBUITabBarController" id="1034742383">
|
||||
<object class="IBUISimulatedTabBarMetrics" key="IBUISimulatedBottomBarMetrics"/>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
|
||||
<int key="interfaceOrientation">1</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIHorizontal">NO</bool>
|
||||
<object class="IBUIViewController" key="IBUISelectedViewController" id="268481961">
|
||||
<object class="IBUITabBarItem" key="IBUITabBarItem" id="807309489">
|
||||
<string key="IBUITitle">Second</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUITabBar"/>
|
||||
</object>
|
||||
<reference key="IBUIParentViewController" ref="1034742383"/>
|
||||
<string key="IBUINibName">SecondView</string>
|
||||
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
|
||||
<int key="interfaceOrientation">1</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIHorizontal">NO</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBUIViewControllers">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIViewController" id="1024858337">
|
||||
<object class="IBUITabBarItem" key="IBUITabBarItem" id="765670903">
|
||||
<string key="IBUITitle">First</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUITabBar"/>
|
||||
</object>
|
||||
<reference key="IBUIParentViewController" ref="1034742383"/>
|
||||
<string key="IBUINibName">FirstView</string>
|
||||
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
|
||||
<int key="interfaceOrientation">1</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIHorizontal">NO</bool>
|
||||
</object>
|
||||
<reference ref="268481961"/>
|
||||
</object>
|
||||
<object class="IBUITabBar" key="IBUITabBar" id="795333663">
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
<string key="NSFrame">{{129, 330}, {163, 49}}</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">window</string>
|
||||
<reference key="source" ref="664661524"/>
|
||||
<reference key="destination" ref="380026005"/>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="664661524"/>
|
||||
</object>
|
||||
<int key="connectionID">99</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">tabBarController</string>
|
||||
<reference key="source" ref="664661524"/>
|
||||
<reference key="destination" ref="1034742383"/>
|
||||
</object>
|
||||
<int key="connectionID">113</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">2</int>
|
||||
<reference key="object" ref="380026005"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="841351856"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">3</int>
|
||||
<reference key="object" ref="664661524"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">106</int>
|
||||
<reference key="object" ref="1034742383"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="795333663"/>
|
||||
<reference ref="1024858337"/>
|
||||
<reference ref="268481961"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">107</int>
|
||||
<reference key="object" ref="795333663"/>
|
||||
<reference key="parent" ref="1034742383"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">108</int>
|
||||
<reference key="object" ref="1024858337"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="765670903"/>
|
||||
</object>
|
||||
<reference key="parent" ref="1034742383"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">109</int>
|
||||
<reference key="object" ref="268481961"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="807309489"/>
|
||||
</object>
|
||||
<reference key="parent" ref="1034742383"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">110</int>
|
||||
<reference key="object" ref="807309489"/>
|
||||
<reference key="parent" ref="268481961"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">111</int>
|
||||
<reference key="object" ref="765670903"/>
|
||||
<reference key="parent" ref="1024858337"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="532797962"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>106.IBEditorWindowLastContentRect</string>
|
||||
<string>106.IBPluginDependency</string>
|
||||
<string>107.IBPluginDependency</string>
|
||||
<string>108.CustomClassName</string>
|
||||
<string>108.IBPluginDependency</string>
|
||||
<string>109.CustomClassName</string>
|
||||
<string>109.IBPluginDependency</string>
|
||||
<string>110.IBPluginDependency</string>
|
||||
<string>111.IBPluginDependency</string>
|
||||
<string>2.IBAttributePlaceholdersKey</string>
|
||||
<string>2.IBEditorWindowLastContentRect</string>
|
||||
<string>2.IBPluginDependency</string>
|
||||
<string>3.CustomClassName</string>
|
||||
<string>3.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIApplication</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{1323, 526}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>FirstViewController</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>SecondViewController</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSMutableDictionary">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<string>{{229, 373}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>BasicExampleAppDelegate</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">124</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">BasicExampleAppDelegate</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>tabBarController</string>
|
||||
<string>window</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UITabBarController</string>
|
||||
<string>UIWindow</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>tabBarController</string>
|
||||
<string>window</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">tabBarController</string>
|
||||
<string key="candidateClassName">UITabBarController</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">window</string>
|
||||
<string key="candidateClassName">UIWindow</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/BasicExampleAppDelegate.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">FirstViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/FirstViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">SecondViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/SecondViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIWindow</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="533197847">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIApplication</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIBarItem</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIResponder</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<reference key="sourceIdentifier" ref="533197847"/>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchBar</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchDisplayController</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UITabBar</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITabBar.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UITabBarController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="232217318">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UITabBarItem</string>
|
||||
<string key="superclassName">UIBarItem</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITabBarItem.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<reference key="sourceIdentifier" ref="232217318"/>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIWindow</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="1056" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3100" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">BasicExample.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">132</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,476 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1056</int>
|
||||
<string key="IBDocument.SystemVersion">11D50b</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">823</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">132</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="263589821">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUILabel" id="483052203">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">306</int>
|
||||
<string key="NSFrame">{{54, 20}, {211, 43}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Second View</string>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">36</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
<object class="IBUIButton" id="969672781">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 354}, {280, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:84</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Press Me Too!</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="258752913">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 411}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="IBUIBackgroundColor" ref="258752913"/>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<object class="IBUISimulatedTabBarMetrics" key="IBUISimulatedBottomBarMetrics"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">button</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="969672781"/>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">buttonClicked:</string>
|
||||
<reference key="source" ref="969672781"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">10</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="483052203"/>
|
||||
<reference ref="969672781"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="263589821"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="483052203"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="969672781"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>5.IBPluginDependency</string>
|
||||
<string>5.IBViewBoundsToFrameTransform</string>
|
||||
<string>8.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>SecondViewController</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{377, 376}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABCWAAAwzMAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">10</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">SecondViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">buttonClicked:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">buttonClicked:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">buttonClicked:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">button</string>
|
||||
<string key="NS.object.0">UIButton</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">button</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">button</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/SecondViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="180131353">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIButton</string>
|
||||
<string key="superclassName">UIControl</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIControl</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UILabel</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIResponder</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<reference key="sourceIdentifier" ref="180131353"/>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchBar</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchDisplayController</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="1056" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3100" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">BasicExample.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">132</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,15 +0,0 @@
|
|||
//
|
||||
// main.m
|
||||
// Google Analytics iOS SDK.
|
||||
//
|
||||
// Copyright 2009 Google Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
int retVal = UIApplicationMain(argc, argv, nil, nil);
|
||||
[pool release];
|
||||
return retVal;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
//
|
||||
// AppDelegate.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "GAI.h"
|
||||
|
||||
@class RootViewController;
|
||||
@class NavController;
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property(nonatomic, retain) UIWindow *window;
|
||||
@property(nonatomic, retain) NavController *navController;
|
||||
@property(nonatomic, retain) RootViewController *viewController;
|
||||
@property(nonatomic, retain) id<GAITracker> tracker;
|
||||
@property(nonatomic, retain) NSDictionary *images;
|
||||
|
||||
@end
|
|
@ -0,0 +1,104 @@
|
|||
//
|
||||
// AppDelegate.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "NavController.h"
|
||||
#import "RootViewController.h"
|
||||
|
||||
/******* Set your tracking ID here *******/
|
||||
static NSString *const kTrackingId = @"UA-TRACKING-ID";
|
||||
|
||||
@interface AppDelegate ()
|
||||
|
||||
- (NSDictionary *)loadImages;
|
||||
|
||||
@end
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
@synthesize window = window_;
|
||||
@synthesize navController = navController_;
|
||||
@synthesize viewController = viewController_;
|
||||
@synthesize tracker = tracker_;
|
||||
@synthesize images = images_;
|
||||
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
self.images = [self loadImages];
|
||||
|
||||
// Initialize Google Analytics with a 120-second dispatch interval. There is a
|
||||
// tradeoff between battery usage and timely dispatch.
|
||||
[GAI sharedInstance].debug = YES;
|
||||
[GAI sharedInstance].dispatchInterval = 120;
|
||||
[GAI sharedInstance].trackUncaughtExceptions = YES;
|
||||
self.tracker = [[GAI sharedInstance] trackerWithTrackingId:kTrackingId];
|
||||
|
||||
self.window =
|
||||
[[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]
|
||||
autorelease];
|
||||
// Override point for customization after application launch.
|
||||
self.viewController =
|
||||
[[[RootViewController alloc] initWithNibName:@"RootViewController"
|
||||
bundle:nil] autorelease];
|
||||
|
||||
self.navController =
|
||||
[[[NavController alloc] initWithRootViewController:self.viewController]
|
||||
autorelease];
|
||||
self.navController.delegate = self.navController;
|
||||
|
||||
self.viewController.navController = self.navController;
|
||||
self.window.rootViewController = self.navController;
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[tracker_ release];
|
||||
[viewController_ release];
|
||||
[navController_ release];
|
||||
[window_ release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (NSDictionary *)loadImages {
|
||||
NSArray *contents = [[NSBundle mainBundle] pathsForResourcesOfType:@"jpg"
|
||||
inDirectory:nil];
|
||||
if (!contents) {
|
||||
NSLog(@"Failed to load directory contents");
|
||||
return nil;
|
||||
}
|
||||
NSMutableDictionary *images = [NSMutableDictionary dictionaryWithCapacity:0];
|
||||
for (NSString *file in contents) {
|
||||
NSArray *components = [[file lastPathComponent]
|
||||
componentsSeparatedByString:@"-"];
|
||||
if (components.count == 0) {
|
||||
NSLog(@"Filename doesn't contain dash: %@", file);
|
||||
continue;
|
||||
}
|
||||
UIImage *image = [UIImage imageWithContentsOfFile:file];
|
||||
if (!image) {
|
||||
NSLog(@"Failed to load file: %@", file);
|
||||
continue;
|
||||
}
|
||||
NSString *prefix = [components objectAtIndex:0];
|
||||
NSMutableArray *categoryImages = [images objectForKey:prefix];
|
||||
if (!categoryImages) {
|
||||
categoryImages = [NSMutableArray arrayWithCapacity:0];
|
||||
[images setObject:categoryImages
|
||||
forKey:prefix];
|
||||
}
|
||||
[categoryImages addObject:image];
|
||||
}
|
||||
for (NSString *cat in [images allKeys]) {
|
||||
NSArray *array = [images objectForKey:cat];
|
||||
NSLog(@"Category %@: %u image(s).", cat, array.count);
|
||||
}
|
||||
return images;
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,23 @@
|
|||
//
|
||||
// ViewController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "NavController.h"
|
||||
|
||||
@interface CategoryViewController :
|
||||
GAITrackedViewController<UITableViewDelegate, UITableViewDataSource>
|
||||
|
||||
@property(nonatomic, retain) NSString *category;
|
||||
@property(nonatomic, retain) NavController *navController;
|
||||
@property(nonatomic, retain) IBOutlet UITableView *tableView;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibName
|
||||
bundle:(NSBundle *)nibBundle
|
||||
category:(NSString *)category;
|
||||
|
||||
@end
|
|
@ -0,0 +1,118 @@
|
|||
//
|
||||
// ViewController.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "CategoryViewController.h"
|
||||
#import "ImageViewController.h"
|
||||
|
||||
#import "GAI.h"
|
||||
|
||||
@interface CategoryViewController ()
|
||||
|
||||
@property(nonatomic, retain) NSMutableArray *items;
|
||||
@property(nonatomic, assign) AppDelegate *delegate;
|
||||
|
||||
@end
|
||||
|
||||
@implementation CategoryViewController
|
||||
|
||||
@synthesize category = category_;
|
||||
@synthesize navController = navController_;
|
||||
@synthesize tableView = tableView_;
|
||||
@synthesize items = items_;
|
||||
@synthesize delegate = delegate_;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibName
|
||||
bundle:(NSBundle *)nibBundle
|
||||
category:(NSString *)category {
|
||||
self = [super initWithNibName:nibName
|
||||
bundle:nibBundle];
|
||||
if (self) {
|
||||
self.category = category;
|
||||
self.trackedViewName = category;
|
||||
self.title = [NSString stringWithFormat:@"Cute %@s", category];
|
||||
self.delegate = [UIApplication sharedApplication].delegate;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[category_ release];
|
||||
[navController_ release];
|
||||
[tableView_ release];
|
||||
[items_ release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
self.items = [self.delegate.images objectForKey:self.category];
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:
|
||||
(UIInterfaceOrientation)interfaceOrientation {
|
||||
if ([[UIDevice currentDevice] userInterfaceIdiom] ==
|
||||
UIUserInterfaceIdiomPhone) {
|
||||
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
|
||||
} else {
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark UITableViewDelegate methods
|
||||
|
||||
- (void)tableView:(UITableView *)tableView
|
||||
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:NO];
|
||||
if (indexPath.row < 0 || indexPath.row >= self.items.count) {
|
||||
NSLog(@"IndexPath %d out of bounds!", indexPath.row);
|
||||
return;
|
||||
}
|
||||
NSString *title =
|
||||
[NSString stringWithFormat:@"%@ %d", self.category, indexPath.row];
|
||||
UIImage *image = [self.items objectAtIndex:indexPath.row];
|
||||
ImageViewController *imageViewController =
|
||||
[[[ImageViewController alloc] initWithNibName:nil
|
||||
bundle:nil
|
||||
title:title
|
||||
image:image] autorelease];
|
||||
[imageViewController.view addSubview:imageViewController.imageView];
|
||||
[self.navController pushViewController:imageViewController animated:YES];
|
||||
}
|
||||
|
||||
#pragma mark UITableViewDataSource methods
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView
|
||||
numberOfRowsInSection:(NSInteger)section {
|
||||
return self.items.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView
|
||||
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (indexPath.row < 0 || indexPath.row >= self.items.count) {
|
||||
NSLog(@"IndexPath %d out of bounds!", indexPath.row);
|
||||
return nil;
|
||||
}
|
||||
|
||||
static NSString *CellId = @"Cell";
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellId];
|
||||
if (!cell) {
|
||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
|
||||
reuseIdentifier:CellId] autorelease];
|
||||
}
|
||||
|
||||
cell.textLabel.text = [NSString stringWithFormat:@"%@ %d",
|
||||
self.category, indexPath.row];
|
||||
cell.textLabel.font = [UIFont systemFontOfSize:14];
|
||||
UIImage *image = [self.items objectAtIndex:indexPath.row];
|
||||
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d x %d",
|
||||
(int)image.size.width, (int)image.size.height];
|
||||
cell.detailTextLabel.font = [UIFont systemFontOfSize:12];
|
||||
return cell;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,18 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">12C60</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2843</string>
|
||||
<string key="IBDocument.AppKitVersion">1187.34</string>
|
||||
<string key="IBDocument.HIToolboxVersion">625.00</string>
|
||||
<int key="IBDocument.SystemTarget">1296</int>
|
||||
<string key="IBDocument.SystemVersion">11D50b</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1929</string>
|
||||
<string key="NS.object.0">1181</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUITableView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
@ -31,12 +32,31 @@
|
|||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="766721923">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUITableView" id="481613891">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{768, 1004}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<bool key="IBUIAlwaysBounceVertical">YES</bool>
|
||||
<int key="IBUISeparatorStyle">1</int>
|
||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
||||
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
|
||||
<float key="IBUIRowHeight">44</float>
|
||||
<float key="IBUISectionHeaderHeight">22</float>
|
||||
<float key="IBUISectionFooterHeight">22</float>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {768, 1004}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
|
@ -44,7 +64,6 @@
|
|||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
|
||||
<int key="IBUIStatusBarStyle">2</int>
|
||||
</object>
|
||||
|
@ -61,6 +80,30 @@
|
|||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">tableView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="481613891"/>
|
||||
</object>
|
||||
<int key="connectionID">8</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dataSource</string>
|
||||
<reference key="source" ref="481613891"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="481613891"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
</object>
|
||||
<int key="connectionID">10</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
|
@ -84,40 +127,41 @@
|
|||
<object class="IBObjectRecord">
|
||||
<int key="objectID">2</int>
|
||||
<reference key="object" ref="766721923"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="481613891"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="481613891"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">ContactUsViewController</string>
|
||||
<string key="-1.CustomClassName">CategoryViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">3</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">ContactUsViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/ContactUsViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<int key="maxID">10</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<real value="1296" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<bool key="IBDocument.UseAutolayout">YES</bool>
|
||||
<string key="IBCocoaTouchPluginVersion">1929</string>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,18 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">12A269</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2835</string>
|
||||
<string key="IBDocument.AppKitVersion">1187</string>
|
||||
<string key="IBDocument.HIToolboxVersion">624.00</string>
|
||||
<int key="IBDocument.SystemTarget">1296</int>
|
||||
<string key="IBDocument.SystemVersion">11D50b</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1919</string>
|
||||
<string key="NS.object.0">1181</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUITableView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
@ -26,42 +27,47 @@
|
|||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<object class="IBProxyObject" id="843779117">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<object class="IBUIView" id="774585933">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{0, 20}, {320, 548}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUITableView" id="183585393">
|
||||
<reference key="NSNextResponder" ref="774585933"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview" ref="774585933"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIAlwaysBounceVertical">YES</bool>
|
||||
<int key="IBUISeparatorStyle">1</int>
|
||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
||||
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
|
||||
<float key="IBUIRowHeight">44</float>
|
||||
<float key="IBUISectionHeaderHeight">22</float>
|
||||
<float key="IBUISectionFooterHeight">22</float>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSNextKeyView" ref="183585393"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC43NQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics">
|
||||
<string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string>
|
||||
<object class="NSMutableDictionary" key="IBUINormalizedOrientationToSizeMap">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<array key="dict.sortedKeys">
|
||||
<integer value="1"/>
|
||||
<integer value="3"/>
|
||||
</array>
|
||||
<array key="dict.values">
|
||||
<string>{320, 568}</string>
|
||||
<string>{568, 320}</string>
|
||||
</array>
|
||||
</object>
|
||||
<string key="IBUITargetRuntime">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIDisplayName">Retina 4 Full Screen</string>
|
||||
<int key="IBUIType">2</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
|
@ -71,9 +77,33 @@
|
|||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
<reference key="destination" ref="774585933"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
<int key="connectionID">7</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">tableView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="183585393"/>
|
||||
</object>
|
||||
<int key="connectionID">11</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dataSource</string>
|
||||
<reference key="source" ref="183585393"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">12</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="183585393"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">13</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
|
@ -84,11 +114,6 @@
|
|||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
|
@ -97,41 +122,47 @@
|
|||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="object" ref="843779117"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="774585933"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="183585393"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="183585393"/>
|
||||
<reference key="parent" ref="774585933"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UpgradeViewController</string>
|
||||
<string key="-1.CustomClassName">CategoryViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">3</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UpgradeViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UpgradeViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<int key="maxID">29</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<real value="1296" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<bool key="IBDocument.UseAutolayout">YES</bool>
|
||||
<string key="IBCocoaTouchPluginVersion">1919</string>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.google.analytics.example.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,10 @@
|
|||
#import <Availability.h>
|
||||
|
||||
#ifndef __IPHONE_4_0
|
||||
#warning "This project uses features only available in iOS SDK 4.0 and later."
|
||||
#endif
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#endif
|
|
@ -0,0 +1,402 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
113B6EE8153E1F0B003CAC38 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 113B6EE7153E1F0B003CAC38 /* UIKit.framework */; };
|
||||
113B6EEA153E1F0B003CAC38 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 113B6EE9153E1F0B003CAC38 /* Foundation.framework */; };
|
||||
113B6F10153E1F99003CAC38 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 113B6F03153E1F99003CAC38 /* AppDelegate.m */; };
|
||||
113B6F11153E1F99003CAC38 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 113B6F04153E1F99003CAC38 /* main.m */; };
|
||||
113B6F12153E1F99003CAC38 /* NavController.m in Sources */ = {isa = PBXBuildFile; fileRef = 113B6F06153E1F99003CAC38 /* NavController.m */; };
|
||||
113B6F13153E1F99003CAC38 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 113B6F08153E1F99003CAC38 /* RootViewController.m */; };
|
||||
113B6F14153E1F99003CAC38 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 113B6F09153E1F99003CAC38 /* RootViewController.xib */; };
|
||||
113B6F15153E1F99003CAC38 /* CategoryViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 113B6F0A153E1F99003CAC38 /* CategoryViewController_iPad.xib */; };
|
||||
113B6F16153E1F99003CAC38 /* CategoryViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 113B6F0B153E1F99003CAC38 /* CategoryViewController_iPhone.xib */; };
|
||||
113B6F2B153E208D003CAC38 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 113B6F2A153E208D003CAC38 /* CoreData.framework */; };
|
||||
115686561593CE6A00A5D031 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 115686551593CE6A00A5D031 /* SystemConfiguration.framework */; };
|
||||
11BC54011577E1F000E7D657 /* libGoogleAnalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 11BC53FF1577E1E000E7D657 /* libGoogleAnalytics.a */; };
|
||||
11FCCC1F1561834700949704 /* CategoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 11FCCC1C1561834700949704 /* CategoryViewController.m */; };
|
||||
11FCCC201561834700949704 /* ImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 11FCCC1E1561834700949704 /* ImageViewController.m */; };
|
||||
11FCCC34156189A600949704 /* Bunny-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC22156189A600949704 /* Bunny-1.jpg */; };
|
||||
11FCCC35156189A600949704 /* Bunny-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC23156189A600949704 /* Bunny-2.jpg */; };
|
||||
11FCCC36156189A600949704 /* Bunny-3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC24156189A600949704 /* Bunny-3.jpg */; };
|
||||
11FCCC37156189A600949704 /* Cat-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC25156189A600949704 /* Cat-1.jpg */; };
|
||||
11FCCC38156189A600949704 /* Cat-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC26156189A600949704 /* Cat-2.jpg */; };
|
||||
11FCCC39156189A600949704 /* Cat-3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC27156189A600949704 /* Cat-3.jpg */; };
|
||||
11FCCC3A156189A600949704 /* Cat-4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC28156189A600949704 /* Cat-4.jpg */; };
|
||||
11FCCC3B156189A600949704 /* Lion-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC29156189A600949704 /* Lion-1.jpg */; };
|
||||
11FCCC3C156189A600949704 /* Lion-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC2A156189A600949704 /* Lion-2.jpg */; };
|
||||
11FCCC3D156189A600949704 /* Lion-3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC2B156189A600949704 /* Lion-3.jpg */; };
|
||||
11FCCC3E156189A600949704 /* Lion-4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC2C156189A600949704 /* Lion-4.jpg */; };
|
||||
11FCCC3F156189A600949704 /* Monkey-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC2D156189A600949704 /* Monkey-1.jpg */; };
|
||||
11FCCC40156189A600949704 /* Monkey-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC2E156189A600949704 /* Monkey-2.jpg */; };
|
||||
11FCCC41156189A600949704 /* Monkey-3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC2F156189A600949704 /* Monkey-3.jpg */; };
|
||||
11FCCC42156189A600949704 /* Monkey-4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC30156189A600949704 /* Monkey-4.jpg */; };
|
||||
11FCCC43156189A600949704 /* Monkey-5.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC31156189A600949704 /* Monkey-5.jpg */; };
|
||||
11FCCC44156189A600949704 /* Tiger-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC32156189A600949704 /* Tiger-1.jpg */; };
|
||||
11FCCC45156189A600949704 /* Tiger-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 11FCCC33156189A600949704 /* Tiger-2.jpg */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
113B6EE3153E1F0B003CAC38 /* CuteAnimals.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CuteAnimals.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
113B6EE7153E1F0B003CAC38 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
113B6EE9153E1F0B003CAC38 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
113B6EEF153E1F0B003CAC38 /* CuteAnimals-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CuteAnimals-Info.plist"; sourceTree = "<group>"; };
|
||||
113B6EF5153E1F0B003CAC38 /* CuteAnimals-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CuteAnimals-Prefix.pch"; sourceTree = "<group>"; };
|
||||
113B6F02153E1F99003CAC38 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
|
||||
113B6F03153E1F99003CAC38 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
|
||||
113B6F04153E1F99003CAC38 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; };
|
||||
113B6F05153E1F99003CAC38 /* NavController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavController.h; sourceTree = SOURCE_ROOT; };
|
||||
113B6F06153E1F99003CAC38 /* NavController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NavController.m; sourceTree = SOURCE_ROOT; };
|
||||
113B6F07153E1F99003CAC38 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = SOURCE_ROOT; };
|
||||
113B6F08153E1F99003CAC38 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = SOURCE_ROOT; };
|
||||
113B6F09153E1F99003CAC38 /* RootViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = SOURCE_ROOT; };
|
||||
113B6F0A153E1F99003CAC38 /* CategoryViewController_iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CategoryViewController_iPad.xib; sourceTree = SOURCE_ROOT; };
|
||||
113B6F0B153E1F99003CAC38 /* CategoryViewController_iPhone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CategoryViewController_iPhone.xib; sourceTree = SOURCE_ROOT; };
|
||||
113B6F2A153E208D003CAC38 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
|
||||
115686551593CE6A00A5D031 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
|
||||
11BC53FF1577E1E000E7D657 /* libGoogleAnalytics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libGoogleAnalytics.a; path = ../../Library/libGoogleAnalytics.a; sourceTree = "<group>"; };
|
||||
11BC54021577E24400E7D657 /* GAI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GAI.h; path = ../../Library/GAI.h; sourceTree = "<group>"; };
|
||||
11BC54031577E24500E7D657 /* GAITrackedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GAITrackedViewController.h; path = ../../Library/GAITrackedViewController.h; sourceTree = "<group>"; };
|
||||
11BC54041577E24500E7D657 /* GAITracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GAITracker.h; path = ../../Library/GAITracker.h; sourceTree = "<group>"; };
|
||||
11BC54051577E24500E7D657 /* GAITransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GAITransaction.h; path = ../../Library/GAITransaction.h; sourceTree = "<group>"; };
|
||||
11BC54061577E24500E7D657 /* GAITransactionItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GAITransactionItem.h; path = ../../Library/GAITransactionItem.h; sourceTree = "<group>"; };
|
||||
11FCCC1B1561834700949704 /* CategoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CategoryViewController.h; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC1C1561834700949704 /* CategoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CategoryViewController.m; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC1D1561834700949704 /* ImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageViewController.h; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC1E1561834700949704 /* ImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageViewController.m; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC22156189A600949704 /* Bunny-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Bunny-1.jpg"; path = "Images/Bunny-1.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC23156189A600949704 /* Bunny-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Bunny-2.jpg"; path = "Images/Bunny-2.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC24156189A600949704 /* Bunny-3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Bunny-3.jpg"; path = "Images/Bunny-3.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC25156189A600949704 /* Cat-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Cat-1.jpg"; path = "Images/Cat-1.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC26156189A600949704 /* Cat-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Cat-2.jpg"; path = "Images/Cat-2.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC27156189A600949704 /* Cat-3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Cat-3.jpg"; path = "Images/Cat-3.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC28156189A600949704 /* Cat-4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Cat-4.jpg"; path = "Images/Cat-4.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC29156189A600949704 /* Lion-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Lion-1.jpg"; path = "Images/Lion-1.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC2A156189A600949704 /* Lion-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Lion-2.jpg"; path = "Images/Lion-2.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC2B156189A600949704 /* Lion-3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Lion-3.jpg"; path = "Images/Lion-3.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC2C156189A600949704 /* Lion-4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Lion-4.jpg"; path = "Images/Lion-4.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC2D156189A600949704 /* Monkey-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Monkey-1.jpg"; path = "Images/Monkey-1.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC2E156189A600949704 /* Monkey-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Monkey-2.jpg"; path = "Images/Monkey-2.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC2F156189A600949704 /* Monkey-3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Monkey-3.jpg"; path = "Images/Monkey-3.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC30156189A600949704 /* Monkey-4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Monkey-4.jpg"; path = "Images/Monkey-4.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC31156189A600949704 /* Monkey-5.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Monkey-5.jpg"; path = "Images/Monkey-5.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC32156189A600949704 /* Tiger-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Tiger-1.jpg"; path = "Images/Tiger-1.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
11FCCC33156189A600949704 /* Tiger-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "Tiger-2.jpg"; path = "Images/Tiger-2.jpg"; sourceTree = SOURCE_ROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
113B6EE0153E1F0B003CAC38 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
115686561593CE6A00A5D031 /* SystemConfiguration.framework in Frameworks */,
|
||||
113B6F2B153E208D003CAC38 /* CoreData.framework in Frameworks */,
|
||||
113B6EE8153E1F0B003CAC38 /* UIKit.framework in Frameworks */,
|
||||
113B6EEA153E1F0B003CAC38 /* Foundation.framework in Frameworks */,
|
||||
11BC54011577E1F000E7D657 /* libGoogleAnalytics.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
113B6ED8153E1F0B003CAC38 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
113B6EED153E1F0B003CAC38 /* CuteAnimals */,
|
||||
113B6EE6153E1F0B003CAC38 /* Frameworks */,
|
||||
113B6EE4153E1F0B003CAC38 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6EE4153E1F0B003CAC38 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
113B6EE3153E1F0B003CAC38 /* CuteAnimals.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6EE6153E1F0B003CAC38 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
115686551593CE6A00A5D031 /* SystemConfiguration.framework */,
|
||||
113B6F2A153E208D003CAC38 /* CoreData.framework */,
|
||||
113B6EE7153E1F0B003CAC38 /* UIKit.framework */,
|
||||
113B6EE9153E1F0B003CAC38 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6EED153E1F0B003CAC38 /* CuteAnimals */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
113B6F1E153E1FAD003CAC38 /* Google Analytics Library */,
|
||||
113B6F02153E1F99003CAC38 /* AppDelegate.h */,
|
||||
113B6F03153E1F99003CAC38 /* AppDelegate.m */,
|
||||
11FCCC1B1561834700949704 /* CategoryViewController.h */,
|
||||
11FCCC1C1561834700949704 /* CategoryViewController.m */,
|
||||
11FCCC1D1561834700949704 /* ImageViewController.h */,
|
||||
11FCCC1E1561834700949704 /* ImageViewController.m */,
|
||||
113B6F04153E1F99003CAC38 /* main.m */,
|
||||
113B6F05153E1F99003CAC38 /* NavController.h */,
|
||||
113B6F06153E1F99003CAC38 /* NavController.m */,
|
||||
113B6F07153E1F99003CAC38 /* RootViewController.h */,
|
||||
113B6F08153E1F99003CAC38 /* RootViewController.m */,
|
||||
113B6F0A153E1F99003CAC38 /* CategoryViewController_iPad.xib */,
|
||||
113B6F0B153E1F99003CAC38 /* CategoryViewController_iPhone.xib */,
|
||||
113B6F09153E1F99003CAC38 /* RootViewController.xib */,
|
||||
113B6EEE153E1F0B003CAC38 /* Supporting Files */,
|
||||
);
|
||||
name = CuteAnimals;
|
||||
path = .;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6EEE153E1F0B003CAC38 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
11FCCC211561899800949704 /* Images */,
|
||||
113B6EEF153E1F0B003CAC38 /* CuteAnimals-Info.plist */,
|
||||
113B6EF5153E1F0B003CAC38 /* CuteAnimals-Prefix.pch */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6F1E153E1FAD003CAC38 /* Google Analytics Library */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
11BC54021577E24400E7D657 /* GAI.h */,
|
||||
11BC54031577E24500E7D657 /* GAITrackedViewController.h */,
|
||||
11BC54041577E24500E7D657 /* GAITracker.h */,
|
||||
11BC54051577E24500E7D657 /* GAITransaction.h */,
|
||||
11BC54061577E24500E7D657 /* GAITransactionItem.h */,
|
||||
11BC53FF1577E1E000E7D657 /* libGoogleAnalytics.a */,
|
||||
);
|
||||
name = "Google Analytics Library";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
11FCCC211561899800949704 /* Images */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
11FCCC22156189A600949704 /* Bunny-1.jpg */,
|
||||
11FCCC23156189A600949704 /* Bunny-2.jpg */,
|
||||
11FCCC24156189A600949704 /* Bunny-3.jpg */,
|
||||
11FCCC25156189A600949704 /* Cat-1.jpg */,
|
||||
11FCCC26156189A600949704 /* Cat-2.jpg */,
|
||||
11FCCC27156189A600949704 /* Cat-3.jpg */,
|
||||
11FCCC28156189A600949704 /* Cat-4.jpg */,
|
||||
11FCCC29156189A600949704 /* Lion-1.jpg */,
|
||||
11FCCC2A156189A600949704 /* Lion-2.jpg */,
|
||||
11FCCC2B156189A600949704 /* Lion-3.jpg */,
|
||||
11FCCC2C156189A600949704 /* Lion-4.jpg */,
|
||||
11FCCC2D156189A600949704 /* Monkey-1.jpg */,
|
||||
11FCCC2E156189A600949704 /* Monkey-2.jpg */,
|
||||
11FCCC2F156189A600949704 /* Monkey-3.jpg */,
|
||||
11FCCC30156189A600949704 /* Monkey-4.jpg */,
|
||||
11FCCC31156189A600949704 /* Monkey-5.jpg */,
|
||||
11FCCC32156189A600949704 /* Tiger-1.jpg */,
|
||||
11FCCC33156189A600949704 /* Tiger-2.jpg */,
|
||||
);
|
||||
name = Images;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
113B6EE2153E1F0B003CAC38 /* CuteAnimals */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 113B6EFB153E1F0B003CAC38 /* Build configuration list for PBXNativeTarget "CuteAnimals" */;
|
||||
buildPhases = (
|
||||
113B6EDF153E1F0B003CAC38 /* Sources */,
|
||||
113B6EE0153E1F0B003CAC38 /* Frameworks */,
|
||||
113B6EE1153E1F0B003CAC38 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = CuteAnimals;
|
||||
productName = CuteAnimals;
|
||||
productReference = 113B6EE3153E1F0B003CAC38 /* CuteAnimals.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
113B6EDA153E1F0B003CAC38 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0430;
|
||||
};
|
||||
buildConfigurationList = 113B6EDD153E1F0B003CAC38 /* Build configuration list for PBXProject "CuteAnimals" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 113B6ED8153E1F0B003CAC38;
|
||||
productRefGroup = 113B6EE4153E1F0B003CAC38 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
113B6EE2153E1F0B003CAC38 /* CuteAnimals */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
113B6EE1153E1F0B003CAC38 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
113B6F14153E1F99003CAC38 /* RootViewController.xib in Resources */,
|
||||
113B6F15153E1F99003CAC38 /* CategoryViewController_iPad.xib in Resources */,
|
||||
113B6F16153E1F99003CAC38 /* CategoryViewController_iPhone.xib in Resources */,
|
||||
11FCCC34156189A600949704 /* Bunny-1.jpg in Resources */,
|
||||
11FCCC35156189A600949704 /* Bunny-2.jpg in Resources */,
|
||||
11FCCC36156189A600949704 /* Bunny-3.jpg in Resources */,
|
||||
11FCCC37156189A600949704 /* Cat-1.jpg in Resources */,
|
||||
11FCCC38156189A600949704 /* Cat-2.jpg in Resources */,
|
||||
11FCCC39156189A600949704 /* Cat-3.jpg in Resources */,
|
||||
11FCCC3A156189A600949704 /* Cat-4.jpg in Resources */,
|
||||
11FCCC3B156189A600949704 /* Lion-1.jpg in Resources */,
|
||||
11FCCC3C156189A600949704 /* Lion-2.jpg in Resources */,
|
||||
11FCCC3D156189A600949704 /* Lion-3.jpg in Resources */,
|
||||
11FCCC3E156189A600949704 /* Lion-4.jpg in Resources */,
|
||||
11FCCC3F156189A600949704 /* Monkey-1.jpg in Resources */,
|
||||
11FCCC40156189A600949704 /* Monkey-2.jpg in Resources */,
|
||||
11FCCC41156189A600949704 /* Monkey-3.jpg in Resources */,
|
||||
11FCCC42156189A600949704 /* Monkey-4.jpg in Resources */,
|
||||
11FCCC43156189A600949704 /* Monkey-5.jpg in Resources */,
|
||||
11FCCC44156189A600949704 /* Tiger-1.jpg in Resources */,
|
||||
11FCCC45156189A600949704 /* Tiger-2.jpg in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
113B6EDF153E1F0B003CAC38 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
113B6F10153E1F99003CAC38 /* AppDelegate.m in Sources */,
|
||||
113B6F11153E1F99003CAC38 /* main.m in Sources */,
|
||||
113B6F12153E1F99003CAC38 /* NavController.m in Sources */,
|
||||
113B6F13153E1F99003CAC38 /* RootViewController.m in Sources */,
|
||||
11FCCC1F1561834700949704 /* CategoryViewController.m in Sources */,
|
||||
11FCCC201561834700949704 /* ImageViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
113B6EF9153E1F0B003CAC38 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
113B6EFA153E1F0B003CAC38 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
113B6EFC153E1F0B003CAC38 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "CuteAnimals-Prefix.pch";
|
||||
INFOPLIST_FILE = "CuteAnimals-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../Library\"",
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
113B6EFD153E1F0B003CAC38 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "CuteAnimals-Prefix.pch";
|
||||
INFOPLIST_FILE = "CuteAnimals-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../Library\"",
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
113B6EDD153E1F0B003CAC38 /* Build configuration list for PBXProject "CuteAnimals" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
113B6EF9153E1F0B003CAC38 /* Debug */,
|
||||
113B6EFA153E1F0B003CAC38 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
113B6EFB153E1F0B003CAC38 /* Build configuration list for PBXNativeTarget "CuteAnimals" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
113B6EFC153E1F0B003CAC38 /* Debug */,
|
||||
113B6EFD153E1F0B003CAC38 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 113B6EDA153E1F0B003CAC38 /* Project object */;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
//
|
||||
// ImageViewController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "GAI.h"
|
||||
#import "NavController.h"
|
||||
|
||||
@interface ImageViewController : GAITrackedViewController
|
||||
|
||||
@property(nonatomic, retain) NavController *navController;
|
||||
@property(nonatomic, retain) UIImageView *imageView;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil
|
||||
bundle:(NSBundle *)nibBundleOrNil
|
||||
title:(NSString *)title
|
||||
image:(UIImage *)image;
|
||||
|
||||
@end
|
|
@ -0,0 +1,44 @@
|
|||
//
|
||||
// ImageViewController.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ImageViewController.h"
|
||||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
@implementation ImageViewController
|
||||
|
||||
@synthesize imageView = imageView_;
|
||||
@synthesize navController = navController_;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil
|
||||
bundle:(NSBundle *)nibBundleOrNil
|
||||
title:(NSString *)title
|
||||
image:(UIImage *)image {
|
||||
self = [super initWithNibName:nibNameOrNil
|
||||
bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
self.title = self.trackedViewName = title;
|
||||
self.imageView = [[[UIImageView alloc] initWithImage:image] autorelease];
|
||||
self.imageView.userInteractionEnabled = YES;
|
||||
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (void)dealloc {
|
||||
[imageView_ release];
|
||||
[navController_ release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:
|
||||
(UIInterfaceOrientation)interfaceOrientation {
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 78 KiB |
|
@ -0,0 +1,13 @@
|
|||
//
|
||||
// NavController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface NavController :
|
||||
UINavigationController<UINavigationControllerDelegate>
|
||||
|
||||
@end
|
|
@ -0,0 +1,31 @@
|
|||
//
|
||||
// NavController.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "NavController.h"
|
||||
|
||||
@implementation NavController
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:
|
||||
(UIInterfaceOrientation)interfaceOrientation {
|
||||
return YES;
|
||||
}
|
||||
|
||||
#pragma mark UINavigationControllerDelegate methods
|
||||
|
||||
- (void)navigationController:(UINavigationController *)navigationController
|
||||
willShowViewController:(UIViewController *)viewController
|
||||
animated:(BOOL)animated {
|
||||
// NSLog(@"navigationController:willShowViewController:animated:");
|
||||
}
|
||||
|
||||
- (void)navigationController:(UINavigationController *)navigationController
|
||||
didShowViewController:(UIViewController *)viewController
|
||||
animated:(BOOL)animated {
|
||||
// NSLog(@"navigationController:didShowViewController:animated:");
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,13 @@
|
|||
IMPORTANT: For this app to work, edit AppDelegate.m and supply your tracking ID.
|
||||
|
||||
This example app illustrates how to easily add Google Analytics tracking to a
|
||||
simple iOS application. The app delegate initializes the Google Analytics SDK,
|
||||
sets the dispatch interval, enables uncaught exception tracking and the logging
|
||||
of debug messages, and instantiates a tracker using the tracking ID given. Each
|
||||
view controller that needs to be tracked inherits from GAITrackedViewController
|
||||
and sets the 'trackedViewName' property to enable automatic view tracking with
|
||||
the view name given. The app also tracks the toggling of dispatching using HTTP
|
||||
and HTTPS as events by directly calling the GAITracker event tracking method.
|
||||
|
||||
All images are from the public domain. They were downloaded from
|
||||
http://public-domain-image.com
|
|
@ -0,0 +1,16 @@
|
|||
//
|
||||
// RootViewController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface RootViewController :
|
||||
GAITrackedViewController<UITableViewDelegate, UITableViewDataSource>
|
||||
|
||||
@property(nonatomic, retain) NavController *navController;
|
||||
@property(nonatomic, retain) IBOutlet UITableView *tableView;
|
||||
|
||||
@end
|
|
@ -0,0 +1,154 @@
|
|||
//
|
||||
// RootViewController.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "RootViewController.h"
|
||||
#import "CategoryViewController.h"
|
||||
#import "ImageViewController.h"
|
||||
|
||||
#import "GAI.h"
|
||||
|
||||
@interface RootViewController ()
|
||||
|
||||
@property(nonatomic, retain) NSArray *items;
|
||||
@property(nonatomic, assign) AppDelegate *delegate;
|
||||
|
||||
@end
|
||||
|
||||
@implementation RootViewController
|
||||
|
||||
@synthesize tableView = tableView_;
|
||||
@synthesize navController = navController_;
|
||||
@synthesize items = items_;
|
||||
@synthesize delegate = delegate_;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibName
|
||||
bundle:(NSBundle *)nibBundle {
|
||||
self = [super initWithNibName:nibName
|
||||
bundle:nibBundle];
|
||||
if (self) {
|
||||
self.trackedViewName = @"root";
|
||||
self.title = @"Cute Animals";
|
||||
self.delegate = [UIApplication sharedApplication].delegate;
|
||||
[self updateSecureButton];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[tableView_ release];
|
||||
[navController_ release];
|
||||
[items_ release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)updateSecureButton {
|
||||
if ([GAI sharedInstance].defaultTracker.useHttps) {
|
||||
self.navigationItem.leftBarButtonItem.title = @"HTTPS";
|
||||
self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleDone;
|
||||
} else {
|
||||
self.navigationItem.leftBarButtonItem.title = @"HTTP";
|
||||
self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleBordered;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)toggleSecure {
|
||||
[GAI sharedInstance].defaultTracker.useHttps =
|
||||
![GAI sharedInstance].defaultTracker.useHttps;
|
||||
[self updateSecureButton];
|
||||
[[GAI sharedInstance].defaultTracker sendEventWithCategory:@"secureDispatch"
|
||||
withAction:@"toggle"
|
||||
withLabel:nil
|
||||
withValue:nil];
|
||||
}
|
||||
|
||||
- (void)crash {
|
||||
[NSException raise:@"There is no spoon."
|
||||
format:@"Abort, retry, fail?"];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
self.navigationItem.leftBarButtonItem =
|
||||
[[[UIBarButtonItem alloc]
|
||||
initWithTitle:@"HTTP"
|
||||
style:UIBarButtonItemStyleBordered
|
||||
target:self
|
||||
action:@selector(toggleSecure)] autorelease];
|
||||
self.navigationItem.rightBarButtonItem =
|
||||
[[[UIBarButtonItem alloc]
|
||||
initWithTitle:@"Crash"
|
||||
style:UIBarButtonItemStyleBordered
|
||||
target:self
|
||||
action:@selector(crash)] autorelease];
|
||||
self.items =
|
||||
[[self.delegate.images allKeys]
|
||||
sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:
|
||||
(UIInterfaceOrientation)interfaceOrientation {
|
||||
return NO;
|
||||
}
|
||||
|
||||
#pragma mark UITableViewDelegate methods
|
||||
|
||||
- (void)tableView:(UITableView *)tableView
|
||||
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:NO];
|
||||
if (indexPath.row < 0 || indexPath.row >= self.items.count) {
|
||||
NSLog(@"IndexPath %d out of bounds!", indexPath.row);
|
||||
return;
|
||||
}
|
||||
|
||||
NSString *category = [self.items objectAtIndex:indexPath.row];
|
||||
NSString *nib = ([[UIDevice currentDevice] userInterfaceIdiom] ==
|
||||
UIUserInterfaceIdiomPhone) ? @"CategoryViewController_iPhone" :
|
||||
@"CategoryViewController_iPad";
|
||||
CategoryViewController *categoryController =
|
||||
[[[CategoryViewController alloc] initWithNibName:nib
|
||||
bundle:nil
|
||||
category:category] autorelease];
|
||||
categoryController.navController = self.navController;
|
||||
[self.navController pushViewController:categoryController animated:YES];
|
||||
}
|
||||
|
||||
#pragma mark UITableViewDataSource methods
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView
|
||||
numberOfRowsInSection:(NSInteger)section {
|
||||
return self.items.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView
|
||||
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (indexPath.row < 0 || indexPath.row >= self.items.count) {
|
||||
NSLog(@"IndexPath %d out of bounds!", indexPath.row);
|
||||
return nil;
|
||||
}
|
||||
NSString *category = [self.items objectAtIndex:indexPath.row];
|
||||
|
||||
static NSString *CellId = @"Cell";
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellId];
|
||||
if (!cell) {
|
||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
|
||||
reuseIdentifier:CellId] autorelease];
|
||||
}
|
||||
|
||||
NSString *label = [NSString stringWithFormat:@"Cute %@ Pictures!", category];
|
||||
cell.textLabel.text = label;
|
||||
cell.textLabel.font = [UIFont systemFontOfSize:14];
|
||||
NSUInteger imageCount =
|
||||
[(NSArray *)[self.delegate.images objectForKey:category] count];
|
||||
cell.detailTextLabel.text = [NSString stringWithFormat:@"%u image(s).",
|
||||
imageCount];
|
||||
cell.detailTextLabel.font = [UIFont systemFontOfSize:12];
|
||||
return cell;
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,193 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1296</int>
|
||||
<string key="IBDocument.SystemVersion">11D50b</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1181</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUITableView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="841351856">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="606714003">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="766721923">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUITableView" id="302742316">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{768, 1004}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<bool key="IBUIAlwaysBounceVertical">YES</bool>
|
||||
<int key="IBUISeparatorStyle">1</int>
|
||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
||||
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
|
||||
<float key="IBUIRowHeight">44</float>
|
||||
<float key="IBUISectionHeaderHeight">22</float>
|
||||
<float key="IBUISectionFooterHeight">22</float>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {768, 1004}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
|
||||
<int key="IBUIStatusBarStyle">2</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="766721923"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">tableView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="302742316"/>
|
||||
</object>
|
||||
<int key="connectionID">7</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dataSource</string>
|
||||
<reference key="source" ref="302742316"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
</object>
|
||||
<int key="connectionID">5</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="302742316"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
</object>
|
||||
<int key="connectionID">6</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="841351856"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="606714003"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">2</int>
|
||||
<reference key="object" ref="766721923"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="302742316"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="302742316"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">RootViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">7</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">RootViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">tableView</string>
|
||||
<string key="NS.object.0">UITableView</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">tableView</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">tableView</string>
|
||||
<string key="candidateClassName">UITableView</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/RootViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<real value="1296" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
</archive>
|
17
Frameworks/Google Analytics SDK/Examples/CuteAnimals/main.m
Normal file
|
@ -0,0 +1,17 @@
|
|||
//
|
||||
// main.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
@autoreleasepool {
|
||||
return UIApplicationMain(argc, argv, nil,
|
||||
NSStringFromClass([AppDelegate class]));
|
||||
}
|
||||
}
|
131
Frameworks/Google Analytics SDK/Library/GAI.h
Normal file
|
@ -0,0 +1,131 @@
|
|||
/*!
|
||||
@header GAI.h
|
||||
@abstract Google Analytics iOS SDK Header
|
||||
@version 2.0
|
||||
@copyright Copyright 2011 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "GAITracker.h"
|
||||
#import "GAITrackedViewController.h"
|
||||
|
||||
/*! Google Analytics product string. */
|
||||
extern NSString *const kGAIProduct;
|
||||
|
||||
/*! Google Analytics version string. */
|
||||
extern NSString *const kGAIVersion;
|
||||
|
||||
/*!
|
||||
NSError objects returned by the Google Analytics SDK may have this error domain
|
||||
to indicate that the error originated in the Google Analytics SDK.
|
||||
*/
|
||||
extern NSString *const kGAIErrorDomain;
|
||||
|
||||
/*! Google Analytics error codes. */
|
||||
typedef enum {
|
||||
// This error code indicates that there was no error. Never used.
|
||||
kGAINoError = 0,
|
||||
|
||||
// This error code indicates that there was a database-related error.
|
||||
kGAIDatabaseError,
|
||||
|
||||
// This error code indicates that there was a network-related error.
|
||||
kGAINetworkError,
|
||||
} GAIErrorCode;
|
||||
|
||||
/*!
|
||||
Google Analytics iOS top-level class. Provides facilities to create trackers
|
||||
and set behaviorial flags.
|
||||
*/
|
||||
@interface GAI : NSObject
|
||||
|
||||
/*!
|
||||
For convenience, this class exposes a default tracker instance.
|
||||
This is initialized to `nil` and will be set to the first tracker that is
|
||||
instantiated in trackerWithTrackingId:. It may be overridden as desired.
|
||||
|
||||
The GAITrackedViewController class will, by default, use this tracker instance.
|
||||
*/
|
||||
@property(nonatomic, assign) id<GAITracker> defaultTracker;
|
||||
|
||||
/*!
|
||||
If true, Google Analytics debug messages will be logged with `NSLog()`. This is
|
||||
useful for debugging calls to the Google Analytics SDK.
|
||||
|
||||
By default, this flag is set to `NO`. */
|
||||
@property(nonatomic, assign) BOOL debug;
|
||||
|
||||
/*!
|
||||
When this is true, no tracking information will be gathered; tracking calls
|
||||
will effectively become no-ops. When set to true, all tracking information that
|
||||
has not yet been submitted. The value of this flag will be persisted
|
||||
automatically by the SDK. Developers can optionally use this flag to implement
|
||||
an opt-out setting in the app to allows users to opt out of Google Analytics
|
||||
tracking.
|
||||
|
||||
This is set to `NO` the first time the Google Analytics SDK is used on a
|
||||
device, and is persisted thereafter.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL optOut;
|
||||
|
||||
/*!
|
||||
If this value is negative, tracking information must be sent manually by
|
||||
calling dispatch. If this value is zero, tracking information will
|
||||
automatically be sent as soon as possible (usually immediately if the device
|
||||
has Internet connectivity). If this value is positive, tracking information
|
||||
will be automatically dispatched every dispatchInterval seconds.
|
||||
|
||||
When the dispatchInterval is non-zero, setting it to zero will cause any queued
|
||||
tracking information to be sent immediately.
|
||||
|
||||
By default, this is set to `120`, which indicates tracking information should
|
||||
be dispatched automatically every 120 seconds.
|
||||
*/
|
||||
@property(nonatomic, assign) NSTimeInterval dispatchInterval;
|
||||
|
||||
/*!
|
||||
When set to true, the SDK will record the currently registered uncaught
|
||||
exception handler, and then register an uncaught exception handler which tracks
|
||||
the exceptions that occurred using defaultTracker. If defaultTracker is not
|
||||
`nil`, this function will track the exception on the tracker and attempt to
|
||||
dispatch any outstanding tracking information for 5 seconds. It will then call
|
||||
the previously registered exception handler, if any. When set back to false,
|
||||
the previously registered uncaught exception handler will be restored.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL trackUncaughtExceptions;
|
||||
|
||||
/*! Get the shared instance of the Google Analytics for iOS class. */
|
||||
+ (GAI *)sharedInstance;
|
||||
|
||||
/*!
|
||||
Create or retrieve a GAITracker implementation with the specified tracking
|
||||
ID. If the tracker for the specified tracking ID does not already exist, then
|
||||
it will be created and returned; otherwise, the existing tracker will be
|
||||
returned. If defaultTracker is not set, it will be set to the tracker instance
|
||||
returned here.
|
||||
|
||||
@param trackingId The tracking ID (a string that begins with "UA-"). Must not
|
||||
be `nil` or empty.
|
||||
|
||||
@return A GAITracker associated with the specified tracking ID. The tracker
|
||||
can be used to send tracking data to Google Analytics. The first time this
|
||||
method is called with a particular tracking ID, the tracker for that tracking
|
||||
ID will be returned, and subsequent calls with the same tracking ID will return
|
||||
the same instance. It is not necessary to retain the tracker because the
|
||||
tracker will be retained internally by the library.
|
||||
|
||||
If an error occurs or the tracker ID is not valid, this method will return
|
||||
`nil`.
|
||||
*/
|
||||
- (id<GAITracker>)trackerWithTrackingId:(NSString *)trackingId;
|
||||
|
||||
/*!
|
||||
Dispatches any pending tracking information.
|
||||
|
||||
It would be wise to call this when application is exiting to initiate the
|
||||
submission of any unsubmitted tracking information. Note that this does not
|
||||
have any effect on dispatchInterval, and can be used in conjuntion with
|
||||
periodic dispatch. */
|
||||
- (void)dispatch;
|
||||
|
||||
@end
|
|
@ -0,0 +1,38 @@
|
|||
/*!
|
||||
@header GAITrackedViewController.h
|
||||
@abstract Google Analytics for iOS Tracked View Controller Header
|
||||
@version 2.0
|
||||
@copyright Copyright 2012 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@protocol GAITracker;
|
||||
|
||||
/*!
|
||||
Extends UIViewController to generate Google Analytics view tracking calls
|
||||
whenever the view appears; this is done by overriding the `viewDidAppear:`
|
||||
method. The view name must be set for any tracking calls to be made.
|
||||
|
||||
By default, this will use [GAI defaultTracker] for tracking calls, but one can
|
||||
override this by setting the tracker property.
|
||||
*/
|
||||
@interface GAITrackedViewController : UIViewController {
|
||||
@private
|
||||
id<GAITracker> tracker_;
|
||||
NSString *trackedViewName_;
|
||||
}
|
||||
|
||||
/*!
|
||||
The tracker on which view tracking calls are be made, or `nil`, in which case
|
||||
[GAI defaultTracker] will be used.
|
||||
*/
|
||||
@property(nonatomic, assign) id<GAITracker> tracker;
|
||||
/*!
|
||||
The view name, for purposes of Google Analytics view tracking. If this is
|
||||
`nil`, no tracking calls will be made.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *trackedViewName;
|
||||
|
||||
@end
|
441
Frameworks/Google Analytics SDK/Library/GAITracker.h
Normal file
|
@ -0,0 +1,441 @@
|
|||
/*!
|
||||
@header GAITracker.h
|
||||
@abstract Google Analytics iOS SDK Tracker Header
|
||||
@version 2.0
|
||||
@copyright Copyright 2011 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "GAITransaction.h"
|
||||
|
||||
/*!
|
||||
Google Analytics tracking interface. Obtain instances of this interface from
|
||||
[GAI trackerWithTrackingId:] to track screens, events, transactions, timing,
|
||||
and exceptions. The implementation of this interface is thread-safe, and no
|
||||
calls are expected to block or take a long time. All network and disk activity
|
||||
will take place in the background.
|
||||
*/
|
||||
@protocol GAITracker<NSObject>
|
||||
|
||||
/*!
|
||||
The tracking identifier (the string that begins with "UA-") this tracker is
|
||||
associated with.
|
||||
|
||||
This property is read-only.
|
||||
*/
|
||||
@property(nonatomic, copy, readonly) NSString *trackingId;
|
||||
|
||||
/*!
|
||||
The application name associated with this tracker. By default, this property is
|
||||
populated with the `CFBundleName` string from the application bundle. If you
|
||||
wish to override this property, you must do so before making any tracking
|
||||
calls.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *appName;
|
||||
|
||||
/*!
|
||||
The application identifier associated with this tracker. This should be set to
|
||||
the iTunes Connect application identifier assigned to your application. By
|
||||
default, this property is `nil`. If you wish to set this property, you must do
|
||||
so before making any tracking calls.
|
||||
|
||||
Note that this is not your app's bundle id (e.g. com.example.appname), but the
|
||||
identifier used by the App Store.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *appId;
|
||||
|
||||
/*!
|
||||
The application version associated with this tracker. By default, this property
|
||||
is populated with the `CFBundleShortVersionString` string from the application
|
||||
bundle. If you wish to override this property, you must do so before making any
|
||||
tracking calls.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *appVersion;
|
||||
|
||||
/*!
|
||||
Tracking data collected while this is true will be anonymized by the Google
|
||||
Analytics servers by zeroing out some of the least significant bits of the
|
||||
IP address.
|
||||
|
||||
In the case of IPv4 addresses, the last octet is set to zero. For
|
||||
IPv6 addresses, the last 10 octets are set to zero, although this is subject to
|
||||
change in the future.
|
||||
|
||||
By default, this flag is false.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL anonymize;
|
||||
|
||||
/*!
|
||||
Tracking information collected while this is true will be submitted to Google
|
||||
Analytics using HTTPS connection(s); otherwise, HTTP will be used. Note that
|
||||
there may be additional overhead when sending data using HTTPS in terms of
|
||||
processing costs and/or battery consumption.
|
||||
|
||||
By default, this flag is true.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL useHttps;
|
||||
|
||||
/*!
|
||||
The sampleRate parameter controls the probability that the visitor will be
|
||||
sampled. By default, sampleRate is 100, which signifies no sampling. sampleRate
|
||||
may be set to any value between 0 and 100, inclusive. A value of 90 means 90%
|
||||
of visitors should be sampled (10% of visitors to be sampled out).
|
||||
|
||||
When a visitor is not sampled, no data is collected by Google Analytics for iOS
|
||||
library about that visitor's activity. If your application is subject to heavy
|
||||
traffic spikes, you may wish to adjust the sample rate to ensure uninterrupted
|
||||
report tracking. Sampling in Google Analytics occurs consistently across unique
|
||||
visitors, ensuring integrity in trending and reporting even when sampling is
|
||||
enabled, because unique visitors remain included or excluded from the sample,
|
||||
as set from the initiation of sampling.
|
||||
*/
|
||||
@property(nonatomic, assign) double sampleRate;
|
||||
|
||||
/*!
|
||||
The client ID for the tracker.
|
||||
|
||||
This is a persistent unique identifier generated the first time the library is
|
||||
called and persisted unchanged thereafter. It is used to identify the client
|
||||
across multiple application sessions.
|
||||
*/
|
||||
@property(nonatomic, copy, readonly) NSString *clientId;
|
||||
|
||||
/*!
|
||||
The current screen set for this tracker.
|
||||
|
||||
Calling trackView: will also update this property before it dispatches tracking
|
||||
information to Google Analytics. However, if you wish to update the current
|
||||
screen without sending any tracking information, set this property directly.
|
||||
The updated screen will be reflected in subsequent tracking information.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *appScreen;
|
||||
|
||||
/*!
|
||||
The referrer URL for this tracker. Changing this value causes it to be sent
|
||||
with the next dispatch of tracking information.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *referrerUrl;
|
||||
|
||||
/*!
|
||||
The campaign URL for this tracker. This is not directly propagated to Google
|
||||
Analytics, but if there are campaign parameter(s), either manually or
|
||||
auto-tagged, present in this URL, the SDK will include those parameters in the
|
||||
next dispatch of tracking information. Google Analytics treats tracking
|
||||
information with differing campaign information as part of separate sessions.
|
||||
|
||||
For more information on auto-tagging, see
|
||||
http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55590
|
||||
|
||||
For more information on manual tagging, see
|
||||
http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55518
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *campaignUrl;
|
||||
|
||||
/*!
|
||||
If true, indicates the start of a new session. Note that when a tracker is
|
||||
first instantiated, this is initialized to true. To prevent this default
|
||||
behavior, set this to `NO` when the tracker is first obtained.
|
||||
|
||||
By itself, setting this does not send any data. If this is true, when the next
|
||||
tracking call is made, a parameter will be added to the resulting tracking
|
||||
information indicating that it is the start of a session, and this flag will be
|
||||
cleared.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL sessionStart;
|
||||
|
||||
/*!
|
||||
If non-negative, indicates how long, in seconds, the application must
|
||||
transition to the inactive or background state for before the tracker will
|
||||
automatically indicate the start of a new session when the app becomes active
|
||||
again by setting sessionStart to true. For example, if this is set to 30
|
||||
seconds, and the user receives a phone call that lasts for 45 seconds while
|
||||
using the app, upon returning to the app, the sessionStart parameter will be
|
||||
set to true. If the phone call instead lasted 10 seconds, sessionStart will not
|
||||
be modified.
|
||||
|
||||
To disable automatic session tracking, set this to a negative value. To
|
||||
indicate the start of a session anytime the app becomes inactive or
|
||||
backgrounded, set this to zero.
|
||||
|
||||
By default, this is 30 seconds.
|
||||
*/
|
||||
@property(nonatomic, assign) NSTimeInterval sessionTimeout;
|
||||
|
||||
/*!
|
||||
Track that the current screen (as set in appScreen) was displayed. If appScreen
|
||||
has not been set, this will not generate any tracking information.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed or appScreen is not set).
|
||||
*/
|
||||
- (BOOL)sendView;
|
||||
|
||||
/*!
|
||||
This method is deprecated. See sendView.
|
||||
*/
|
||||
- (BOOL)trackView;
|
||||
|
||||
/*!
|
||||
Track that the specified view or screen was displayed. This call sets
|
||||
the appScreen property and generates tracking information to be sent to Google
|
||||
Analytics.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@param screen The name of the screen. Must not be `nil`.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed).
|
||||
*/
|
||||
- (BOOL)sendView:(NSString *)screen;
|
||||
|
||||
/*!
|
||||
This method is deprecated. See sendView.
|
||||
*/
|
||||
- (BOOL)trackView:(NSString *)screen;
|
||||
|
||||
/*!
|
||||
Track an event.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@param category The event category, or `nil` if none.
|
||||
|
||||
@param action The event action, or `nil` if none.
|
||||
|
||||
@param label The event label, or `nil` if none.
|
||||
|
||||
@param value The event value, to be interpreted as a 64-bit signed integer, or
|
||||
`nil` if none.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed).
|
||||
*/
|
||||
- (BOOL)sendEventWithCategory:(NSString *)category
|
||||
withAction:(NSString *)action
|
||||
withLabel:(NSString *)label
|
||||
withValue:(NSNumber *)value;
|
||||
|
||||
/*!
|
||||
This method is deprecated. See sendEventWithCategory.
|
||||
*/
|
||||
- (BOOL)trackEventWithCategory:(NSString *)category
|
||||
withAction:(NSString *)action
|
||||
withLabel:(NSString *)label
|
||||
withValue:(NSNumber *)value;
|
||||
|
||||
/*!
|
||||
Track a transaction.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@param transaction The GAITransaction object.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed).
|
||||
*/
|
||||
- (BOOL)sendTransaction:(GAITransaction *)transaction;
|
||||
|
||||
/*!
|
||||
This method is deprecated. see sendTransaction.
|
||||
*/
|
||||
- (BOOL)trackTransaction:(GAITransaction *)transaction;
|
||||
|
||||
/*!
|
||||
Track an exception.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@param isFatal A boolean indicating whether the exception is fatal.
|
||||
|
||||
@param format A format string that will be used to create the exception
|
||||
description.
|
||||
|
||||
@param ... An optional list of arguments to be substituted using the format
|
||||
string.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed).
|
||||
*/
|
||||
- (BOOL)sendException:(BOOL)isFatal
|
||||
withDescription:(NSString *)format, ...;
|
||||
|
||||
/*!
|
||||
This method is deprecated. See sendException.
|
||||
*/
|
||||
- (BOOL)trackException:(BOOL)isFatal
|
||||
withDescription:(NSString *)format, ...;
|
||||
|
||||
/*! Convenience method for tracking an NSException that passes the exception
|
||||
name to trackException:withDescription:.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@param isFatal A boolean indicating whether the exception is fatal.
|
||||
|
||||
@param exception The NSException exception object.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed).
|
||||
*/
|
||||
- (BOOL)sendException:(BOOL)isFatal
|
||||
withNSException:(NSException *)exception;
|
||||
|
||||
/*!
|
||||
This method is deprecated. See sendException.
|
||||
*/
|
||||
- (BOOL)trackException:(BOOL)isFatal
|
||||
withNSException:(NSException *)exception;
|
||||
|
||||
/*! Convenience method for tracking an NSError that passes the domain, code, and
|
||||
description to trackException:withDescription:.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@param isFatal A boolean indicating whether the exception is fatal.
|
||||
|
||||
@param error The NSError error object.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed).
|
||||
*/
|
||||
- (BOOL)sendException:(BOOL)isFatal
|
||||
withNSError:(NSError *)error;
|
||||
|
||||
/*!
|
||||
This method is deprecated. See sendException.
|
||||
*/
|
||||
- (BOOL)trackException:(BOOL)isFatal
|
||||
withNSError:(NSError *)error;
|
||||
|
||||
/*!
|
||||
Track user timing.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@param category A string representing a timing category.
|
||||
|
||||
@param time A timing value.
|
||||
|
||||
@param name A string representing a timing name, or `nil` if none.
|
||||
|
||||
@param label A string representing a timing variable label, or `nil` if none.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed).
|
||||
*/
|
||||
- (BOOL)sendTimingWithCategory:(NSString *)category
|
||||
withValue:(NSTimeInterval)time
|
||||
withName:(NSString *)name
|
||||
withLabel:(NSString *)label;
|
||||
|
||||
/*!
|
||||
This method is deprecated. See sendTimingWithCategory.
|
||||
*/
|
||||
- (BOOL)trackTimingWithCategory:(NSString *)category
|
||||
withValue:(NSTimeInterval)time
|
||||
withName:(NSString *)name
|
||||
withLabel:(NSString *)label;
|
||||
|
||||
/*!
|
||||
Track social action.
|
||||
|
||||
If [GAI optOut] is true, this will not generate any tracking information.
|
||||
|
||||
@param network A string representing social network. Must not be nil.
|
||||
|
||||
@param action A string representing a social action. Must not be nil.
|
||||
|
||||
@param target A string representing the target. May be nil.
|
||||
|
||||
@return `YES` if the tracking information was queued for dispatch, or `NO` if
|
||||
there was an error (e.g. the tracker was closed).
|
||||
*/
|
||||
- (BOOL)sendSocial:(NSString *)network
|
||||
withAction:(NSString *)action
|
||||
withTarget:(NSString *)target;
|
||||
|
||||
/*!
|
||||
This method is deprecated. See sendSocial.
|
||||
*/
|
||||
- (BOOL)trackSocial:(NSString *)network
|
||||
withAction:(NSString *)action
|
||||
withTarget:(NSString *)target;
|
||||
|
||||
/*!
|
||||
Set a tracking parameter.
|
||||
|
||||
@param parameterName The parameter name.
|
||||
|
||||
@param value The value to set for the parameter. If this is `nil`, the
|
||||
value for the parameter will be cleared.
|
||||
|
||||
@returns `YES` if the parameter was set to the given value, or `NO` if there
|
||||
was an error (e.g. unknown parameter).
|
||||
*/
|
||||
- (BOOL)set:(NSString *)parameterName
|
||||
value:(NSString *)value;
|
||||
|
||||
/*!
|
||||
Get a tracking parameter.
|
||||
|
||||
@param parameterName The parameter name.
|
||||
|
||||
@returns The parameter value, or `nil` if no value for the given parameter is
|
||||
set.
|
||||
*/
|
||||
- (NSString *)get:(NSString *)parameterName;
|
||||
|
||||
/*!
|
||||
Queue tracking information with the given parameter values.
|
||||
|
||||
@param trackType The type of tracking information, e.g., @"appview".
|
||||
|
||||
@param parameters A map from parameter names to parameter values which will be
|
||||
set just for this piece of tracking information.
|
||||
|
||||
@return `YES` if the tracking information was queued for submission, or `NO`
|
||||
if an error occurred (e.g. bad track type).
|
||||
*/
|
||||
- (BOOL)send:(NSString *)trackType
|
||||
params:(NSDictionary *)parameters;
|
||||
|
||||
/*!
|
||||
Set a custom dimension value, to be sent at the next tracking call.
|
||||
|
||||
@param index The index at which to set the dimension. Must be positive.
|
||||
|
||||
@param dimension The dimension value, or `nil` if the dimension at the given
|
||||
index is to be cleared.
|
||||
|
||||
@return `YES` on success, or `NO` if an error occurred.
|
||||
*/
|
||||
- (BOOL)setCustom:(NSInteger)index
|
||||
dimension:(NSString *)dimension;
|
||||
|
||||
/*!
|
||||
Set a custom metric value, to be sent at the next tracking call.
|
||||
|
||||
@param index The index at which to set the metric. Must be positive.
|
||||
|
||||
@param metric The metric value, which will be interpreted as a signed 64-bit
|
||||
integer, or `nil` if the metric at the given index is to be cleared.
|
||||
|
||||
@return `YES` on success, or `NO` if an error occurred.
|
||||
*/
|
||||
- (BOOL)setCustom:(NSInteger)index
|
||||
metric:(NSNumber *)metric;
|
||||
|
||||
/*!
|
||||
Close the tracker. This will mark it as closed and remove it from the list of
|
||||
trackers accessible through [GAI trackerWithTrackingId:], thus decrementing its
|
||||
reference count (and causing it to be dealloced unless it has been retained by
|
||||
the application). Once this method has been called, it is an error to call any
|
||||
of the tracking methods, and they will not result in the generation of any
|
||||
tracking information to be submitted to Google Analytics.
|
||||
*/
|
||||
- (void)close;
|
||||
|
||||
@end
|
78
Frameworks/Google Analytics SDK/Library/GAITransaction.h
Normal file
|
@ -0,0 +1,78 @@
|
|||
/*!
|
||||
@header GAITransaction.h
|
||||
@abstract Google Analytics iOS SDK Transaction Header
|
||||
@version 2.0
|
||||
@copyright Copyright 2011 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "GAITransactionItem.h"
|
||||
|
||||
/*! A simple class to hold transaction data. */
|
||||
@interface GAITransaction : NSObject
|
||||
|
||||
/*! Transaction ID. */
|
||||
@property(nonatomic, copy, readonly) NSString *transactionId;
|
||||
|
||||
/*! Transaction affiliation. */
|
||||
@property(nonatomic, copy, readonly) NSString *affiliation;
|
||||
|
||||
/*! Revenue in micros (millionths of a currency unit). Note that this must be
|
||||
set manually because it is not updated when items are added. */
|
||||
@property(nonatomic, assign) int64_t revenueMicros;
|
||||
|
||||
/*! Tax in micros (millionths of a currency unit). Note that this must be set
|
||||
* manually because it is not updated when items are added. */
|
||||
@property(nonatomic, assign) int64_t taxMicros;
|
||||
|
||||
/*! Shipping cost in micros (millionths of a currency unit). Note that
|
||||
this must be set manually because it is not updated when items are added. */
|
||||
@property(nonatomic, assign) int64_t shippingMicros;
|
||||
|
||||
/*! Transaction items, as an immutable array. */
|
||||
@property(nonatomic, readonly) NSArray *items;
|
||||
|
||||
/*!
|
||||
Create and initialize a transaction.
|
||||
|
||||
@param transactionId The transaction ID. Required (must not be `nil`).
|
||||
|
||||
@param affiliation The transaction affiliation. May be `nil`.
|
||||
|
||||
@return A GAITransaction object with the specified transaction ID and
|
||||
affiliation.
|
||||
*/
|
||||
+ (GAITransaction *)transactionWithId:(NSString *)transactionId
|
||||
withAffiliation:(NSString *)affiliation;
|
||||
|
||||
/*!
|
||||
Add an item to the transaction. If an item with the same SKU already
|
||||
exists in the transaction, that item will be replaced with this one.
|
||||
|
||||
@param item The GAITransactionItem to add to the transaction.
|
||||
*/
|
||||
- (void)addItem:(GAITransactionItem *)item;
|
||||
|
||||
/*!
|
||||
Add an item to the transaction. If an item with the same SKU already
|
||||
exists in the transaction, that item will be replaced with this one.
|
||||
|
||||
@param productCode The item product code; must not be `nil` or empty.
|
||||
|
||||
@param productName The item product name; may be `nil`.
|
||||
|
||||
@param productCategory The item product category; may be `nil`.
|
||||
|
||||
@param priceMicros The item price, in micros (millionths of a currency unit).
|
||||
|
||||
@param quantity The item quantity, as an NSInteger.
|
||||
|
||||
@return The newly initialized item.
|
||||
*/
|
||||
- (void)addItemWithCode:(NSString *)productCode
|
||||
name:(NSString *)productName
|
||||
category:(NSString *)productCategory
|
||||
priceMicros:(int64_t)priceMicros
|
||||
quantity:(NSInteger)quantity;
|
||||
|
||||
@end
|
49
Frameworks/Google Analytics SDK/Library/GAITransactionItem.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
/*!
|
||||
@header GAITransactionItem.h
|
||||
@abstract Google Analytics iOS SDK Transaction Item Header
|
||||
@version 2.0
|
||||
@copyright Copyright 2011 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*! A simple class to hold transaction item data. */
|
||||
@interface GAITransactionItem : NSObject
|
||||
|
||||
/*! The item code, as a string. */
|
||||
@property(nonatomic, copy, readonly) NSString *productCode;
|
||||
|
||||
/*! The item name. */
|
||||
@property(nonatomic, copy) NSString *productName;
|
||||
|
||||
/*! The item variation. */
|
||||
@property(nonatomic, copy) NSString *productCategory;
|
||||
|
||||
/*! The item price in micros (millionths of a currency unit). */
|
||||
@property(nonatomic, assign) int64_t priceMicros;
|
||||
|
||||
/*! The item quantity. */
|
||||
@property(nonatomic, assign) NSInteger quantity;
|
||||
|
||||
/*!
|
||||
Create and initialize an item.
|
||||
|
||||
@param productCode The item product code; must not be `nil` or empty.
|
||||
|
||||
@param productName The item product name; must not be `nil` or empty.
|
||||
|
||||
@param productCategory The item product category; may be `nil`.
|
||||
|
||||
@param priceMicros The item price, in micros (millionths of a currency unit).
|
||||
|
||||
@param quantity The item quantity, as an NSInteger.
|
||||
|
||||
@return The newly initialized item.
|
||||
*/
|
||||
+ (GAITransactionItem *)itemWithCode:(NSString *)productCode
|
||||
name:(NSString *)productName
|
||||
category:(NSString *)productCategory
|
||||
priceMicros:(int64_t)priceMicros
|
||||
quantity:(NSInteger)quantity;
|
||||
|
||||
@end
|
|
@ -1,437 +0,0 @@
|
|||
/*!
|
||||
@header GANTracker.h
|
||||
|
||||
Google Analytics iOS SDK
|
||||
@version 1.5
|
||||
|
||||
@copyright Copyright 2009 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
/*!
|
||||
@enum GANErrorCode
|
||||
Error codes which may be returned by various GANTracker methods.
|
||||
*/
|
||||
typedef enum {
|
||||
// This error code is returned when input to a method is incorrect.
|
||||
kGANTrackerInvalidInputError = 0xbade7a9,
|
||||
|
||||
// This error code is returned when the number of hits generated in a session
|
||||
// exceeds the limit (currently 500).
|
||||
kGANTrackerEventsPerSessionLimitError = 0xbad5704e,
|
||||
|
||||
// This error code is returned if the method called requires that the tracker
|
||||
// be started.
|
||||
kGANTrackerNotStartedError = 0xbada55,
|
||||
|
||||
// This error code is returned if the method call resulted in some sort of
|
||||
// database error.
|
||||
kGANTrackerDatabaseError = 0xbadbaddb
|
||||
} GANErrorCode;
|
||||
|
||||
/*!
|
||||
@var kGANTrackerErrorDomain
|
||||
@abstract The error domain for errors originating in the Google Analytics iOS
|
||||
SDK. All errors generated by the Google Analytics iOS SDK will belong to
|
||||
this domain.
|
||||
*/
|
||||
extern NSString* const kGANTrackerErrorDomain;
|
||||
|
||||
/*!
|
||||
@var kGANMaxCustomVariables
|
||||
@abstract The maximum number of custom variables the SDK can support. Custom
|
||||
variable indices must be between 1 and this value, inclusive.
|
||||
|
||||
@discussion Standard accounts support up to 5 custom variables, while premium
|
||||
accounts support up to 50 custom variables. The SDK will accept custom
|
||||
variable indices higher than 5, but unless the account is a premium account,
|
||||
those custom variables will not be processed.
|
||||
*/
|
||||
extern const NSUInteger kGANMaxCustomVariables;
|
||||
|
||||
/*!
|
||||
@var kGANMaxCustomVariableLength
|
||||
@abstract The maximum length of a custom variable name or value. The length of
|
||||
custom variable names and values must not exceed this value.
|
||||
*/
|
||||
extern const NSUInteger kGANMaxCustomVariableLength;
|
||||
|
||||
/*!
|
||||
@enum GANCVScope
|
||||
|
||||
@abstract Custom variable scope enumeration.
|
||||
|
||||
@discussion Possible values are visitor scope, session scope, and page scope.
|
||||
Visitor and session scoped custom variables are stored for later use. Session
|
||||
and page scoped custom variables are attached to each event. Visitor scoped
|
||||
custom variables are sent only on the first event for a session.
|
||||
*/
|
||||
typedef enum {
|
||||
kGANVisitorScope = 1U,
|
||||
kGANSessionScope = 2U,
|
||||
kGANPageScope = 3U
|
||||
} GANCVScope;
|
||||
|
||||
@class GANTrackerPrivate;
|
||||
@protocol GANTrackerDelegate;
|
||||
|
||||
/*!
|
||||
@class GANTracker
|
||||
|
||||
@abstract Google Analytics tracking class. Tracks pageviews, events, and
|
||||
transactions by storing them in a persistent store and dispatching them in the
|
||||
background to Google Analytics.
|
||||
*/
|
||||
@interface GANTracker : NSObject {
|
||||
@private
|
||||
GANTrackerPrivate *private_;
|
||||
BOOL debug_;
|
||||
BOOL dryRun_;
|
||||
BOOL anonymizeIp_;
|
||||
NSUInteger sampleRate_;
|
||||
NSString *private1_;
|
||||
NSString *private2_;
|
||||
NSString *destinationHost_;
|
||||
NSUInteger destinationPort_;
|
||||
NSString *destinationPathPrefix_;
|
||||
}
|
||||
|
||||
/*!
|
||||
@property debug
|
||||
|
||||
@abstract If true, debug messages will be written to the log.
|
||||
This is useful for debugging calls to the Google Analytics SDK.
|
||||
By default, this flag is false.
|
||||
*/
|
||||
@property(nonatomic, readwrite) BOOL debug;
|
||||
|
||||
/*!
|
||||
@property dryRun
|
||||
|
||||
@abstract If true, hits will not be sent to Google Analytics.
|
||||
This is useful for debugging calls to the Google Analytics SDK.
|
||||
By default, this flag is false.
|
||||
*/
|
||||
@property(nonatomic, readwrite) BOOL dryRun;
|
||||
|
||||
/*!
|
||||
@property anonymizeIp
|
||||
|
||||
@abstract If true, Google Analytics will anonymize the IP address information
|
||||
collected by zeroing out some of the least significant bits of the address. By
|
||||
default, this flag is false.
|
||||
|
||||
@discussion In the case of IPv4 addresses, the last octet is set to zero. For
|
||||
IPv6 addresses, the last 10 octets are set to zero, although this is subject to
|
||||
change in the future.
|
||||
*/
|
||||
@property(nonatomic, readwrite) BOOL anonymizeIp;
|
||||
|
||||
/*!
|
||||
@property sampleRate
|
||||
|
||||
@abstract The sampleRate parameter controls the probability that the visitor
|
||||
will be sampled. By default, sampleRate is 100, which signifies no sampling.
|
||||
sampleRate may be set to any integer value between 0 and 100, inclusive. A
|
||||
value of 90 requests 90% of visitors to be sampled (10% of visitors to be
|
||||
sampled out).
|
||||
|
||||
@discussion When a visitor is not sampled, no data is submitted to Google
|
||||
Analytics about that visitor's activity. If your application is subject to
|
||||
heavy traffic spikes, you may wish to adjust the sample rate to ensure
|
||||
uninterrupted report tracking. Sampling in Google Analytics occurs consistently
|
||||
across unique visitors, ensuring integrity in trending and reporting even when
|
||||
sampling is enabled, because unique visitors remain included or excluded from
|
||||
the sample, as set from the initiation of sampling.
|
||||
*/
|
||||
@property(nonatomic, readwrite) NSUInteger sampleRate;
|
||||
|
||||
/*!
|
||||
@abstract Returns the singleton instance of GANTracker.
|
||||
*/
|
||||
+ (GANTracker *)sharedTracker;
|
||||
|
||||
/*!
|
||||
@abstract Start the Google Analytics tracker.
|
||||
|
||||
@param accountID The Google Analytics account ID (the string that begins with
|
||||
"UA-").
|
||||
|
||||
@param dispatchPeriod The desired automatic dispatch period (in seconds).
|
||||
The dispatcher will check for events to dispatch every |dispatchPeriod|
|
||||
seconds. If a non-positive (e.g. 0 or -1) dispatch period is given, automatic
|
||||
dispatch will not be enabled, and the application will need to dispatch events
|
||||
manually using @link dispatch @/link or @link dispatchSynchronous: @/link.
|
||||
|
||||
@param delegate An optional delegate which will get notified when hits get
|
||||
dispatched.
|
||||
*/
|
||||
- (void)startTrackerWithAccountID:(NSString *)accountID
|
||||
dispatchPeriod:(NSInteger)dispatchPeriod
|
||||
delegate:(id<GANTrackerDelegate>)delegate;
|
||||
|
||||
/*!
|
||||
@abstract Stop the tracker.
|
||||
*/
|
||||
- (void)stopTracker;
|
||||
|
||||
/*!
|
||||
@abstract Track a page view.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param pageURL The URL of the pageview to track. A forward-slash ('/')
|
||||
character will be prepended to this string if it doesn't start with one.
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass 'nil'
|
||||
here.
|
||||
*/
|
||||
- (BOOL)trackPageview:(NSString *)pageURL
|
||||
withError:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Track an event view.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param category The event category. This parameter is required to be non-nil.
|
||||
|
||||
@param action The event action. This parameter is required to be non-nil.
|
||||
|
||||
@param label The event label. This parameter may be nil to indicate no label.
|
||||
|
||||
@param value The event value. This parameter may be -1 to indicate no value.
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass 'nil'
|
||||
here.
|
||||
*/
|
||||
- (BOOL)trackEvent:(NSString *)category
|
||||
action:(NSString *)action
|
||||
label:(NSString *)label
|
||||
value:(NSInteger)value
|
||||
withError:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Set a custom variable. If there is an existing custom variable at the
|
||||
specified index, it will be overwritten.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param index The variable index. This must be between 1 and
|
||||
@link kGANMaxCustomVariables @/link, inclusive.
|
||||
|
||||
@param name The custom variable name. The length of this string must not exceed
|
||||
@link kGANMaxCustomVariableLength @/link.
|
||||
|
||||
@param value The custom variable value. The length of this string must not
|
||||
exceed @link kGANMaxCustomVariableLength @/link.
|
||||
|
||||
@param scope The custom variable scope (see @link GANCVScope @/link for
|
||||
discussion of what this value means).
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass 'nil'
|
||||
here.
|
||||
*/
|
||||
- (BOOL)setCustomVariableAtIndex:(NSUInteger)index
|
||||
name:(NSString *)name
|
||||
value:(NSString *)value
|
||||
scope:(GANCVScope)scope
|
||||
withError:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Set a page scoped custom variable. The variable set is included with
|
||||
the next even only. If there is an existing custom variable at the specified
|
||||
index, it will be overwritten by this one.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param index The variable index. This must be between 1 and
|
||||
@link kGANMaxCustomVariables @/link, inclusive.
|
||||
|
||||
@param name The custom variable name. The length of this string must not exceed
|
||||
@link kGANMaxCustomVariableLength @/link.
|
||||
|
||||
@param value The custom variable value. The length of this string must not
|
||||
exceed @link kGANMaxCustomVariableLength @/link.
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass 'nil'
|
||||
here.
|
||||
*/
|
||||
- (BOOL)setCustomVariableAtIndex:(NSUInteger)index
|
||||
name:(NSString *)name
|
||||
value:(NSString *)value
|
||||
withError:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Get the value of the custom variable at the index requested.
|
||||
|
||||
@return Returns the value of the custom variable at the specified index.
|
||||
Returns nil no variable is present at that index or the index is out of range.
|
||||
|
||||
@param index The variable index. This must be between 1 and
|
||||
@link kGANMaxCustomVariables @/link, inclusive.
|
||||
*/
|
||||
- (NSString *)getVisitorCustomVarAtIndex:(NSUInteger)index;
|
||||
|
||||
/*!
|
||||
@abstract Create an e-commerce transaction.
|
||||
|
||||
@discussion All transactions will be queued for dispatch when
|
||||
@link trackTransactions: @/link is called.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param orderID The transaction order ID. If a transaction with this order id is
|
||||
already present in the ECommerce buffer, it will be overwritten by this one.
|
||||
|
||||
@param totalPrice The transaction total price.
|
||||
|
||||
@param storeName The transaction store name.
|
||||
|
||||
@param totalTax Total tax incurred in the transaction, if any.
|
||||
|
||||
@param shippingCost Shipping costs incurred in the transaction, if any.
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass 'nil'
|
||||
here.
|
||||
*/
|
||||
- (BOOL)addTransaction:(NSString *)orderID
|
||||
totalPrice:(double)totalPrice
|
||||
storeName:(NSString *)storeName
|
||||
totalTax:(double)totalTax
|
||||
shippingCost:(double)shippingCost
|
||||
withError:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Add an item to an e-commerce transaction.
|
||||
|
||||
@discussion Adds the specified item to the transaction with the specified order
|
||||
ID. All transactions will be queued for dispatch when
|
||||
@link trackTransactions: @/link is called.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param orderID The order ID of the transaction to which the item will be added.
|
||||
If no transaction with this order ID exists, one will be created.
|
||||
|
||||
@param itemSKU The item SKU. If an item in the transaction with the same SKU
|
||||
exists, it will replaced with this one.
|
||||
|
||||
@param itemPrice The item price.
|
||||
|
||||
@param itemCount The item quantity.
|
||||
|
||||
@param itemName The item name.
|
||||
|
||||
@param itemCategory The item category.
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass 'nil'
|
||||
here.
|
||||
*/
|
||||
- (BOOL)addItem:(NSString *)orderID
|
||||
itemSKU:(NSString *)itemSKU
|
||||
itemPrice:(double)itemPrice
|
||||
itemCount:(double)itemCount
|
||||
itemName:(NSString *)itemName
|
||||
itemCategory:(NSString *)itemCategory
|
||||
withError:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Queue pending e-commerce transactions for dispatch.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass 'nil'
|
||||
here.
|
||||
*/
|
||||
- (BOOL)trackTransactions:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Remove pending e-commerce transactions.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass 'nil'
|
||||
here.
|
||||
*/
|
||||
- (BOOL)clearTransactions:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Set the referrer and create a new session associated with the
|
||||
specified referrer.
|
||||
|
||||
@return YES on success or NO on error.
|
||||
|
||||
@param referrer A string specifying the campaign with which to associate this
|
||||
session. All events generated after setting the referrer will have the
|
||||
campaign attached.
|
||||
|
||||
@param error A location to record the error if one occurs. You may pass nil
|
||||
here.
|
||||
*/
|
||||
- (BOOL)setReferrer:(NSString *)referrer
|
||||
withError:(NSError **)error;
|
||||
|
||||
/*!
|
||||
@abstract Dispatch pageviews, events, or transactions to Google Analytics.
|
||||
|
||||
@return YES if there were pending pageviews, events, or transactions that
|
||||
resulted in a new dispatch; NO otherwise.
|
||||
*/
|
||||
- (BOOL)dispatch;
|
||||
|
||||
/*!
|
||||
@abstract Synchronously dispatch pageviews, events, or transactions to Google
|
||||
Analytics.
|
||||
|
||||
@discussion This routine will block until all information has been submitted,
|
||||
or the specified timeout has elapsed.
|
||||
|
||||
@param timeout The maximum time, in seconds, this method can spend submitting
|
||||
information to Google Analytics before it must return.
|
||||
|
||||
@return YES if there were pending pageviews, events, or transactions that
|
||||
resulted in a new dispatch and all were successfully submitted to Google
|
||||
Analytics; NO otherwise.
|
||||
*/
|
||||
- (BOOL)dispatchSynchronous:(NSTimeInterval)timeout;
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
@protocol GANTrackerDelegate
|
||||
|
||||
@abstract Google Analytics tracker delegate. This delegate gets notified when
|
||||
the tracker dispatches a hit successfully, or when there was an error
|
||||
dispatching the hit. All delegate methods are optional.
|
||||
*/
|
||||
@protocol GANTrackerDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
|
||||
/*!
|
||||
@abstract This method is invoked when a hit has been successfully submitted to
|
||||
Google Analytics.
|
||||
|
||||
@param hitString The string representation of the hit, as sent to Google
|
||||
Analytics.
|
||||
*/
|
||||
- (void)hitDispatched:(NSString *)hitString;
|
||||
|
||||
/*!
|
||||
@abstract This method is invoked when a dispatch to Google Analytics is
|
||||
completed.
|
||||
|
||||
@discussion Note: failed hits will be retried on the next dispatch.
|
||||
|
||||
@param tracker The tracker object for which the dispatch was made.
|
||||
|
||||
@param hitsDispatched The number of hits successfully submitted to Google
|
||||
Analytics.
|
||||
|
||||
@param hitsFailedDispatch The number of hits that could not be submitted.
|
||||
*/
|
||||
- (void)trackerDispatchDidComplete:(GANTracker *)tracker
|
||||
eventsDispatched:(NSUInteger)hitsDispatched
|
||||
eventsFailedDispatch:(NSUInteger)hitsFailedDispatch;
|
||||
|
||||
@end
|
|
@ -1,22 +1,33 @@
|
|||
Google Analytics iOS SDK version 1.5.1
|
||||
Google Analytics iOS SDK version 2.0 Beta 4
|
||||
|
||||
Copyright 2009 - 2012 Google, Inc. All rights reserved.
|
||||
Copyright 2009 - 2013 Google, Inc. All rights reserved.
|
||||
|
||||
================================================================================
|
||||
DESCRIPTION:
|
||||
|
||||
This SDK enables developers to add Google Analytics tracking to applications.
|
||||
The tracker code is packaged as a single header file and static library. Drag
|
||||
the GANTracker.h and libGoogleAnalytics.a files into your XCode project. Include
|
||||
the CFNetwork framework in your project and link against libsqlite3.dylib.
|
||||
See the Examples/BasicExample application for an illustration of how to use
|
||||
page tracking and event tracking.
|
||||
This SDK provides developers with the capability to use Google Analytics
|
||||
to track iOS application usage.
|
||||
|
||||
You will need an Analytics Account ID to properly initialize the GANTracker
|
||||
object. We recommend you create a new website profile, by clicking "+ Add new
|
||||
profile" from the main Overview page in Google Analytics (google.com/analytics).
|
||||
Select "new domain" in the wizard, and choose a descriptive but fake URL for
|
||||
your app. The Web Property/Account ID will take the form "UA-0000000-1".
|
||||
The SDK is packaged as a set of header files and a static library. Get started
|
||||
by adding the header files from the Library subdirectory (GAI.h, GAITracker.h,
|
||||
GAITransaction.h, and GAITransactionItem.h) and libGoogleAnalytics.a to your
|
||||
XCode project. You must also include the CoreData framework in your project.
|
||||
|
||||
To use a version of the library with debug symbols intact, link against
|
||||
libGoogleAnalytics_debug.a instead of libGoogleAnalytics.a. This may be useful
|
||||
if you experience exceptions or crashes originating in the SDK.
|
||||
|
||||
See the Examples/CuteAnimals application for an illustration of how to use
|
||||
automatic screen tracking, event tracking, and uncaught exception tracking.
|
||||
|
||||
You will need a Google Analytics tracking ID to track application usage with the
|
||||
SDK. It is recommended to create an account for each set of applications that
|
||||
are to be tracked together, and to use that account's tracking ID in each
|
||||
application. To create a new tracking ID, go to your admin panel in Google
|
||||
Analytics and select "New Account". Under "What would you like to track?",
|
||||
choose "App" and complete the remainder of the form. When you are finished,
|
||||
click "Get Tracking ID". The tracking ID will be of the form "UA-" followed by a
|
||||
sequence of numbers and dashes.
|
||||
|
||||
You must indicate to your users, either in the app itself or in your terms of
|
||||
service, that you reserve the right to anonymously track and report a user's
|
||||
|
@ -24,58 +35,41 @@ activity inside of your app.
|
|||
|
||||
Implementation Details:
|
||||
|
||||
Pageviews and events are stored in an SQLite database and dispatched to the
|
||||
Google Analytics servers either periodically at a rate determined by the
|
||||
developer or manually. A battery efficient strategy may be to "piggy-back"
|
||||
a dispatch just after the application needs to perform network activity.
|
||||
Dispatching happens by pipelining HTTP requests down a single connection
|
||||
(one request per pageview/event with a maximum of 30 per dispatch).
|
||||
Tracking information is stored in an SQLite database and dispatched to the
|
||||
Google Analytics servers in a manner set by the developer: periodically at an
|
||||
interval determined by the developer, immediately when tracking calls are made,
|
||||
or manually. A battery efficient strategy may be to initiate a dispatch when the
|
||||
application needs to access the network. Tracking information is dispatched
|
||||
using HTTP or HTTPS requests to a Google Analytics server.
|
||||
|
||||
================================================================================
|
||||
BUILD REQUIREMENTS:
|
||||
|
||||
Mac OS X v10.6+, XCode 3.2.3+ (iOS 4.0 SDK), iPhone OS 3.0+
|
||||
Mac OS X 10.6 or later.
|
||||
XCode with iOS SDK 4.0 or later (iOS SDK 5.0 or later is required to build the
|
||||
included example application).
|
||||
|
||||
================================================================================
|
||||
RUNTIME REQUIREMENTS:
|
||||
|
||||
Mac OS X v10.6+, iPhone OS 3.0+
|
||||
iOS 4.0 or later.
|
||||
|
||||
Your app must link the following frameworks:
|
||||
CoreData.framework
|
||||
SystemConfiguration.framework
|
||||
|
||||
================================================================================
|
||||
PACKAGING LIST:
|
||||
|
||||
Library/
|
||||
GANTracker.h
|
||||
Library/ (contains header and library files to compile and link with)
|
||||
GAI.h
|
||||
GAITrackedViewController.h
|
||||
GAITracker.h
|
||||
GAITransaction.h
|
||||
GAITransactionItem.h
|
||||
libGoogleAnalytics.a
|
||||
|
||||
Examples/
|
||||
BasicExample/
|
||||
BasicExample-Info.plist
|
||||
BasicExample.xcodeproj/
|
||||
project.pbxproj
|
||||
BasicExample_Prefix.pch
|
||||
Classes/
|
||||
BasicExampleAppDelegate.h
|
||||
BasicExampleAppDelegate.m
|
||||
FirstViewController.h
|
||||
FirstViewController.m
|
||||
SecondViewController.h
|
||||
SecondViewController.m
|
||||
FirstView.xib
|
||||
MainWindow.xib
|
||||
main.m
|
||||
SecondView.xib
|
||||
|
||||
Documentation/
|
||||
Classes/
|
||||
GANTracker/
|
||||
index.html
|
||||
toc.html
|
||||
index.html
|
||||
Protocols/
|
||||
GANTrackerDelegate/
|
||||
index.html
|
||||
toc.html
|
||||
toc.html
|
||||
libGoogleAnalytics_debug.a
|
||||
Examples/ (contains an example tracked application)
|
||||
Documentation/ (contains documentation)
|
||||
|
||||
================================================================================
|
||||
|
|
1
Frameworks/InAppSettingsKit
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 4dd32330f1619cd48ab85e8476b8e3396ea3dc87
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// AccountOpenPhoto
|
||||
// Account
|
||||
// Photo
|
||||
//
|
||||
// Created by Patrick Santana on 06/03/12.
|
||||
|
@ -18,9 +18,7 @@
|
|||
// limitations under the License.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface AccountOpenPhoto : NSObject
|
||||
@interface Account : NSObject
|
||||
|
||||
@property (nonatomic, strong) NSString *email;
|
||||
@property (nonatomic, strong) NSString *host;
|
|
@ -1,27 +1,15 @@
|
|||
//
|
||||
// AccountOpenPhoto
|
||||
// Photo
|
||||
// Account
|
||||
// Trovebox
|
||||
//
|
||||
// Created by Patrick Santana on 06/03/12.
|
||||
// Copyright 2012 Photo
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
// Copyright (c) 2013 Trovebox. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AccountOpenPhoto.h"
|
||||
#import "Account.h"
|
||||
|
||||
|
||||
@implementation AccountOpenPhoto
|
||||
@implementation Account
|
||||
@synthesize email=_email, host=_host, clientToken=_clientToken, clientSecret=_clientSecret, userToken=_userToken, userSecret=_userSecret;
|
||||
|
||||
|
||||
|
@ -29,7 +17,8 @@
|
|||
|
||||
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
|
||||
[standardUserDefaults setValue:@"OK" forKey:kAuthenticationValid];
|
||||
[standardUserDefaults setValue:self.host forKey:kOpenPhotoServer];
|
||||
[standardUserDefaults setValue:self.host forKey:kTroveboxServer];
|
||||
[standardUserDefaults setValue:self.email forKey:kTroveboxEmailUser];
|
||||
[standardUserDefaults setValue:self.userToken forKey:kAuthenticationOAuthToken];
|
||||
[standardUserDefaults setValue:self.userSecret forKey:kAuthenticationOAuthSecret];
|
||||
[standardUserDefaults setValue:self.clientToken forKey:kAuthenticationConsumerKey];
|
|
@ -156,7 +156,7 @@
|
|||
// call the method and get the details
|
||||
@try {
|
||||
// get factory for OpenPhoto Service
|
||||
OpenPhotoService *service = [OpenPhotoServiceFactory createOpenPhotoService];
|
||||
WebService *service = [[WebService alloc] init];
|
||||
NSArray *result = [service loadAlbums:25];
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
|
|
|
@ -37,10 +37,16 @@
|
|||
#import "HomeTableViewController.h"
|
||||
#import "JobUploaderController.h"
|
||||
#import "ELCImagePickerController.h"
|
||||
#import "GANTracker.h"
|
||||
#import "LoginViewController.h"
|
||||
#import "AuthenticationService.h"
|
||||
|
||||
#import "GAI.h"
|
||||
|
||||
//for payment
|
||||
#import <StoreKit/StoreKit.h>
|
||||
#import "TroveboxPaymentTransactionObserver.h"
|
||||
#import "TroveboxSubscription.h"
|
||||
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate,FBRequestDelegate,
|
||||
FBDialogDelegate,
|
||||
|
@ -80,12 +86,16 @@ FBSessionDelegate>{
|
|||
// for facebook single sign in
|
||||
@property (nonatomic, strong) Facebook *facebook;
|
||||
|
||||
//google analytics
|
||||
@property(nonatomic, strong) id<GAITracker> tracker;
|
||||
|
||||
// navigation
|
||||
@property (strong, nonatomic) UIViewController *centerController;
|
||||
@property (strong, nonatomic) UIViewController *menuController;
|
||||
@property (strong, nonatomic) ELCImagePickerController *syncController;
|
||||
@property (nonatomic, strong) UIViewController *centerController;
|
||||
@property (nonatomic, strong) UIViewController *menuController;
|
||||
@property (nonatomic, strong) ELCImagePickerController *syncController;
|
||||
|
||||
// get the user connect
|
||||
- (NSString *) user;
|
||||
- (NSString *) userHost;
|
||||
- (NSString *) userEmail;
|
||||
|
||||
@end
|
||||
|
|
|
@ -43,21 +43,28 @@ static const NSInteger kGANDispatchPeriodSec = 10;
|
|||
@synthesize menuController = _menuController;
|
||||
@synthesize syncController = _syncController;
|
||||
|
||||
@synthesize tracker = tracker_;
|
||||
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
|
||||
#ifdef GOOGLE_ANALYTICS_ENABLED
|
||||
// Google Analytics SDK
|
||||
[[GANTracker sharedTracker] startTrackerWithAccountID:kPrivateGoogleAnalytics
|
||||
dispatchPeriod:kGANDispatchPeriodSec
|
||||
delegate:nil];
|
||||
// Initialize Google Analytics
|
||||
[GAI sharedInstance].trackUncaughtExceptions = NO;
|
||||
[GAI sharedInstance].dispatchInterval = 20;
|
||||
self.tracker = [[GAI sharedInstance] trackerWithTrackingId:kPrivateGoogleAnalytics];
|
||||
#endif
|
||||
|
||||
// in development phase we use the UID of user
|
||||
#ifdef DEVELOPMENT_ENABLED
|
||||
[TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]];
|
||||
[TestFlight takeOff:kPrivateTestFlightId];
|
||||
#endif
|
||||
|
||||
#ifdef TEST_FLIGHT_ENABLED
|
||||
// to start the TestFlight SDK
|
||||
[TestFlight takeOff:@"407f45aed7c5bc2fc88cb567078edb1f_MjMyNTUyMDExLTA5LTEyIDEyOjEyOjU3Ljc1Nzg5MA"];
|
||||
#endif
|
||||
|
||||
[self prepareConnectionInformation];
|
||||
|
@ -116,8 +123,6 @@ static const NSInteger kGANDispatchPeriodSec = 10;
|
|||
navController.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;
|
||||
|
||||
[deckController presentModalViewController:navController animated:YES];
|
||||
|
||||
|
||||
}
|
||||
|
||||
//register to share data.
|
||||
|
@ -129,6 +134,22 @@ static const NSInteger kGANDispatchPeriodSec = 10;
|
|||
// start the job
|
||||
[[JobUploaderController getController] start];
|
||||
|
||||
// Let the device know we want to receive push notifications
|
||||
// [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
|
||||
// (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
|
||||
|
||||
// remove badges
|
||||
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
|
||||
|
||||
// Payment setup
|
||||
if ([SKPaymentQueue canMakePayments]) {
|
||||
TroveboxSubscription *subscription = [TroveboxSubscription createTroveboxSubscription];
|
||||
[subscription requestProUpgradeProductData];
|
||||
|
||||
TroveboxPaymentTransactionObserver *observer = [[TroveboxPaymentTransactionObserver alloc] init];
|
||||
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
@ -521,18 +542,36 @@ static const NSInteger kGANDispatchPeriodSec = 10;
|
|||
}
|
||||
}
|
||||
|
||||
- (NSString *) user
|
||||
- (NSString *) userHost
|
||||
{
|
||||
return [[NSUserDefaults standardUserDefaults] valueForKey:kOpenPhotoServer];
|
||||
return [[NSUserDefaults standardUserDefaults] valueForKey:kTroveboxServer];
|
||||
}
|
||||
|
||||
- (NSString *) userEmail
|
||||
{
|
||||
return [[NSUserDefaults standardUserDefaults] valueForKey:kTroveboxEmailUser];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
}
|
||||
|
||||
#ifdef GOOGLE_ANALYTICS_ENABLED
|
||||
[[GANTracker sharedTracker] stopTracker];
|
||||
#endif
|
||||
/////////////
|
||||
/// FOR NOTIFICATION
|
||||
////////////
|
||||
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
|
||||
{
|
||||
NSLog(@"My token is: %@", deviceToken);
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
|
||||
{
|
||||
NSLog(@"Failed to get token, error: %@", error);
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary *)userInfo
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -21,11 +21,9 @@
|
|||
#import "OAMutableURLRequest.h"
|
||||
#import "OAToken.h"
|
||||
#import "OAServiceTicket.h"
|
||||
#import "OpenPhotoService.h"
|
||||
#import "OpenPhotoServiceFactory.h"
|
||||
#import "OADataFetcher.h"
|
||||
#import "AccountOpenPhoto.h"
|
||||
#import "PrivateAccountLoginService.h"
|
||||
#import "Account.h"
|
||||
#import "PrivateAuthenticationService.h"
|
||||
#import "Timeline+Photo.h"
|
||||
#import "Synced+Photo.h"
|
||||
|
||||
|
@ -44,10 +42,12 @@
|
|||
- (void) startOAuthProcedure:(NSURL*) url;
|
||||
|
||||
// for login
|
||||
+ (AccountOpenPhoto*) createNewAccountWithUser:(NSString*) user email:(NSString*) email;
|
||||
+ (AccountOpenPhoto*) createNewAccountWithUser:(NSString*) user email:(NSString*) email password:(NSString*) pwd;
|
||||
+ (Account *) createNewAccountWithUser:(NSString*) user email:(NSString*) email;
|
||||
+ (Account *) createNewAccountWithUser:(NSString*) user email:(NSString*) email password:(NSString*) pwd;
|
||||
+ (Account *) signIn:(NSString*) email password:(NSString*) pwd;
|
||||
+ (BOOL) checkUserFacebookEmail:(NSString*) email;
|
||||
+ (AccountOpenPhoto*) signIn:(NSString*) email password:(NSString*) pwd;
|
||||
+ (NSString *) recoverPassword:(NSString *) email;
|
||||
|
||||
+ (void) sendToServerReceipt:(NSData *) receipt forUser:(NSString *) email;
|
||||
|
||||
@end
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
-(NSURL*) getOAuthInitialUrl{
|
||||
// get the url
|
||||
NSString *server = [[NSUserDefaults standardUserDefaults] valueForKey:kOpenPhotoServer];
|
||||
NSString *server = [[NSUserDefaults standardUserDefaults] valueForKey:kTroveboxServer];
|
||||
NSString *path = @"/v1/oauth/authorize?oauth_callback=photo-test://&name=";
|
||||
NSString *appName = [[UIDevice currentDevice] name];
|
||||
NSString *fullPath = [[NSString alloc]initWithFormat:@"%@%@%@",server,path,[appName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ] ;
|
||||
|
@ -43,7 +43,7 @@
|
|||
|
||||
-(NSURL*) getOAuthAccessUrl{
|
||||
// get the url
|
||||
NSString* server = [[NSUserDefaults standardUserDefaults] valueForKey:kOpenPhotoServer];
|
||||
NSString* server = [[NSUserDefaults standardUserDefaults] valueForKey:kTroveboxServer];
|
||||
NSString* url = [[NSString alloc]initWithFormat:@"%@%@",server,@"/v1/oauth/token/access"] ;
|
||||
|
||||
#ifdef DEVELOPMENT_ENABLED
|
||||
|
@ -55,7 +55,7 @@
|
|||
|
||||
-(NSURL*) getOAuthTestUrl{
|
||||
// get the url
|
||||
NSString* server = [[NSUserDefaults standardUserDefaults] valueForKey:kOpenPhotoServer];
|
||||
NSString* server = [[NSUserDefaults standardUserDefaults] valueForKey:kTroveboxServer];
|
||||
NSString* url = [[NSString alloc]initWithFormat:@"%@%@",server,@"/v1/oauth/test"] ;
|
||||
|
||||
#ifdef DEVELOPMENT_ENABLED
|
||||
|
@ -94,7 +94,7 @@
|
|||
dispatch_async(removeCredentials, ^{
|
||||
|
||||
@try {
|
||||
OpenPhotoService *service = [OpenPhotoServiceFactory createOpenPhotoService];
|
||||
WebService *service = [[WebService alloc] init];
|
||||
[service removeCredentialsForKey:consumerKey];
|
||||
}@catch (NSException *exception) {
|
||||
NSLog(@"Error to remove the credentials from server %@",exception.description);
|
||||
|
@ -114,13 +114,18 @@
|
|||
[standardUserDefaults setValue:nil forKey:kHomeScreenPicturesTimestamp];
|
||||
[standardUserDefaults setValue:nil forKey:kHomeScreenPictures];
|
||||
|
||||
// reset profile information
|
||||
[standardUserDefaults setValue:nil forKey:kTroveboxEmailUser];
|
||||
[standardUserDefaults setValue:nil forKey:kProfileLatestUpdateDate];
|
||||
[standardUserDefaults setValue:nil forKey:kProfileAccountType];
|
||||
[standardUserDefaults setValue:nil forKey:kProfileLimitRemaining];
|
||||
|
||||
// synchronize the keys
|
||||
[standardUserDefaults synchronize];
|
||||
|
||||
// reset core data
|
||||
[Timeline deleteAllTimelineInManagedObjectContext:[SharedAppDelegate managedObjectContext]];
|
||||
[Synced deleteAllSyncedPhotosInManagedObjectContext:[SharedAppDelegate managedObjectContext]];
|
||||
[[SharedAppDelegate managedObjectContext] reset];
|
||||
|
||||
NSError *saveError = nil;
|
||||
if (![[SharedAppDelegate managedObjectContext] save:&saveError]){
|
||||
|
@ -269,30 +274,35 @@
|
|||
[alert showAlertOnTop];
|
||||
}
|
||||
|
||||
+ (AccountOpenPhoto*) createNewAccountWithUser:(NSString*) user email:(NSString*) email
|
||||
+ (Account *) createNewAccountWithUser:(NSString*) user email:(NSString*) email
|
||||
{
|
||||
return [PrivateAccountLoginService createNewAccountWithUser:user email:email];
|
||||
return [PrivateAuthenticationService createNewAccountWithUser:user email:email];
|
||||
}
|
||||
|
||||
+ (AccountOpenPhoto*) createNewAccountWithUser:(NSString*) user email:(NSString*) email password:(NSString*) pwd
|
||||
+ (Account *) createNewAccountWithUser:(NSString*) user email:(NSString*) email password:(NSString*) pwd
|
||||
{
|
||||
return [PrivateAccountLoginService createNewAccountWithUser:user email:email password:pwd];
|
||||
return [PrivateAuthenticationService createNewAccountWithUser:user email:email password:pwd];
|
||||
|
||||
}
|
||||
|
||||
+ (Account *) signIn:(NSString*) email password:(NSString*) pwd
|
||||
{
|
||||
return [PrivateAuthenticationService signIn:email password:pwd];
|
||||
}
|
||||
|
||||
+ (BOOL) checkUserFacebookEmail:(NSString*) email
|
||||
{
|
||||
return [PrivateAccountLoginService checkUserFacebookEmail:email];
|
||||
}
|
||||
|
||||
+ (AccountOpenPhoto*) signIn:(NSString*) email password:(NSString*) pwd
|
||||
{
|
||||
return [PrivateAccountLoginService signIn:email password:pwd];
|
||||
return [PrivateAuthenticationService checkUserFacebookEmail:email];
|
||||
}
|
||||
|
||||
+ (NSString *) recoverPassword:(NSString *) email
|
||||
{
|
||||
return [PrivateAccountLoginService recoverPassword:email];
|
||||
return [PrivateAuthenticationService recoverPassword:email];
|
||||
}
|
||||
|
||||
+ (void) sendToServerReceipt:(NSData *) receipt forUser:(NSString *) email
|
||||
{
|
||||
return [PrivateAuthenticationService sendToServerReceipt:receipt forUser:email];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
//
|
||||
// AuthenticationViewController.h
|
||||
// Photo
|
||||
// Trovebox
|
||||
//
|
||||
// Created by Patrick Santana on 5/10/12.
|
||||
// Copyright 2012 Photo
|
||||
// Created by Patrick Santana on 07/09/11.
|
||||
// Copyright 2013 Trovebox
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
@ -16,13 +16,13 @@
|
|||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
#import "AuthenticationService.h"
|
||||
#import "WebService.h"
|
||||
#import "GAI.h"
|
||||
|
||||
@interface AuthenticationViewController : UIViewController<UITextFieldDelegate>
|
||||
@interface AuthenticationViewController : GAITrackedViewController<UITextFieldDelegate>
|
||||
|
||||
@property (nonatomic,weak) IBOutlet UITextField *serverURL;
|
||||
@property (retain, nonatomic) IBOutlet UITextField *serverURL;
|
||||
- (IBAction)login:(id)sender;
|
||||
|
||||
@end
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
//
|
||||
// AuthenticationViewController.m
|
||||
// Photo
|
||||
// Trovebox
|
||||
//
|
||||
// Created by Patrick Santana on 5/10/12.
|
||||
// Copyright 2012 Photo
|
||||
// Created by Patrick Santana on 07/09/11.
|
||||
// Copyright 2013 Trovebox
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
@ -16,7 +16,6 @@
|
|||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
#import "AuthenticationViewController.h"
|
||||
|
||||
|
@ -44,6 +43,24 @@
|
|||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - View lifecycle
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view from its nib.
|
||||
[self.navigationController setNavigationBarHidden:NO animated:YES];
|
||||
self.trackedViewName = @"Self-instance Login Screen";
|
||||
}
|
||||
|
||||
- (void)viewDidUnload
|
||||
{
|
||||
[self setServerURL:nil];
|
||||
[super viewDidUnload];
|
||||
// Release any retained subviews of the main view.
|
||||
// e.g. self.myOutlet = nil;
|
||||
}
|
||||
|
||||
- (IBAction)login:(id)sender {
|
||||
#ifdef DEVELOPMENT_ENABLED
|
||||
NSLog(@"Url Login %@",self.serverURL.text);
|
||||
|
@ -51,7 +68,7 @@
|
|||
|
||||
// check if the user typed something
|
||||
if ( self.serverURL.text != nil &&
|
||||
[self.serverURL.text isEqualToString:@"username.openphoto.me"]){
|
||||
[self.serverURL.text isEqualToString:@"username.trovebox.com"]){
|
||||
|
||||
// user should add URL
|
||||
PhotoAlertView *alert = [[PhotoAlertView alloc] initWithMessage:@"Please, set the URL to the OpenPhoto Server." duration:5000];
|
||||
|
@ -61,8 +78,7 @@
|
|||
[self saveUrl:self.serverURL.text];
|
||||
|
||||
// to the login in the website
|
||||
AuthenticationService* service = [[AuthenticationService alloc]init];
|
||||
[[UIApplication sharedApplication] openURL:[service getOAuthInitialUrl]];
|
||||
[[UIApplication sharedApplication] openURL:[[[AuthenticationService alloc]init] getOAuthInitialUrl]];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -77,9 +93,7 @@
|
|||
[self saveUrl:textField.text];
|
||||
|
||||
// to the login
|
||||
AuthenticationService* service = [[AuthenticationService alloc]init];
|
||||
[[UIApplication sharedApplication] openURL:[service getOAuthInitialUrl]];
|
||||
|
||||
[[UIApplication sharedApplication] openURL:[[[AuthenticationService alloc]init] getOAuthInitialUrl]];
|
||||
|
||||
// return
|
||||
[textField resignFirstResponder];
|
||||
|
@ -95,7 +109,7 @@
|
|||
if([textField respondsToSelector:@selector(selectedTextRange)]){
|
||||
|
||||
//iOS >=5.0
|
||||
if ( [textField.text isEqualToString:@"username.openphoto.me"]){
|
||||
if ( [textField.text isEqualToString:@"username.trovebox.com"]){
|
||||
// get the actual range
|
||||
UITextRange *selectedRange = [textField selectedTextRange];
|
||||
|
||||
|
@ -136,9 +150,9 @@
|
|||
|
||||
// removes form the URL if it ends with "/"
|
||||
if ([[url lastPathComponent] isEqualToString:@"/"]){
|
||||
[standardUserDefaults setValue:[text stringByReplacingCharactersInRange:NSMakeRange(text.length-1, 1) withString:@""] forKey:kOpenPhotoServer];
|
||||
[standardUserDefaults setValue:[text stringByReplacingCharactersInRange:NSMakeRange(text.length-1, 1) withString:@""] forKey:kTroveboxServer];
|
||||
}else{
|
||||
[standardUserDefaults setValue:[url relativeString] forKey:kOpenPhotoServer];
|
||||
[standardUserDefaults setValue:[url relativeString] forKey:kTroveboxServer];
|
||||
}
|
||||
[standardUserDefaults synchronize];
|
||||
}
|
||||
|
@ -152,7 +166,7 @@
|
|||
|
||||
if ([notification.name isEqualToString:kNotificationLoginAuthorize]){
|
||||
// we don't need the screen anymore
|
||||
[self dismissViewControllerAnimated:YES completion:nil];
|
||||
[self dismissModalViewControllerAnimated:YES];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<int key="IBDocument.SystemTarget">1552</int>
|
||||
<string key="IBDocument.SystemVersion">12C60</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2843</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
||||
<string key="IBDocument.AppKitVersion">1187.34</string>
|
||||
<string key="IBDocument.HIToolboxVersion">625.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1929</string>
|
||||
<string key="NS.object.0">2083</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
|
@ -59,7 +59,7 @@
|
|||
<object class="IBUIImageView" id="97581516">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{4, 193}, {309, 42}}</string>
|
||||
<string key="NSFrame">{{18, 189}, {285, 40}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSNextKeyView" ref="207019938"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
|
@ -69,13 +69,13 @@
|
|||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">register-input-server.png</string>
|
||||
<string key="NSResourceName">login-field-background.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUITextField" id="207019938">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{25, 198}, {267, 31}}</string>
|
||||
<string key="NSFrame">{{28, 189}, {265, 40}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSNextKeyView" ref="519461955"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:304</string>
|
||||
|
@ -83,7 +83,7 @@
|
|||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<string key="IBUIText">username.openphoto.me</string>
|
||||
<string key="IBUIText">username.trovebox.com</string>
|
||||
<string key="IBUIPlaceholder">url</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
|
@ -115,7 +115,7 @@
|
|||
<object class="IBUIButton" id="519461955">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{13, 234}, {295, 46}}</string>
|
||||
<string key="NSFrame">{{18, 237}, {285, 40}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:225</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
|
@ -137,7 +137,7 @@
|
|||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">register-button-login.png</string>
|
||||
<string key="NSResourceName">login-login.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
|
@ -273,10 +273,10 @@
|
|||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="login-field-background.png">{282, 38}</string>
|
||||
<string key="login-login.png">{282, 37}</string>
|
||||
<string key="register-background.png">{320, 460}</string>
|
||||
<string key="register-button-login.png">{281, 36}</string>
|
||||
<string key="register-input-server.png">{278, 38}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1929</string>
|
||||
<string key="IBCocoaTouchPluginVersion">2083</string>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<int key="IBDocument.SystemTarget">1552</int>
|
||||
<string key="IBDocument.SystemVersion">12C60</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2843</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
||||
<string key="IBDocument.AppKitVersion">1187.34</string>
|
||||
<string key="IBDocument.HIToolboxVersion">625.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1929</string>
|
||||
<string key="NS.object.0">2083</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUITextView</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUITextField</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
|
@ -37,49 +37,96 @@
|
|||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUILabel" id="292788658">
|
||||
<object class="IBUIImageView" id="631354329">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 20}, {69, 21}}</string>
|
||||
<int key="NSvFlags">301</int>
|
||||
<string key="NSFrameSize">{320, 548}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSNextKeyView" ref="444208833"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="97581516"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MAA</bytes>
|
||||
</object>
|
||||
<int key="IBUIContentMode">2</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Message</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">register-background-568h@2x.png</string>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="97581516">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{18, 189}, {285, 40}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="207019938"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">login-field-background.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUITextField" id="207019938">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{28, 189}, {265, 40}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="519461955"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:304</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<string key="IBUIText">username.trovebox.com</string>
|
||||
<string key="IBUIPlaceholder">url</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MAA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace" id="412942702">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
|
||||
<float key="IBUIMinimumFontSize">13</float>
|
||||
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
|
||||
<int key="IBUIAutocorrectionType">1</int>
|
||||
<int key="IBUIKeyboardType">3</int>
|
||||
<int key="IBUIReturnKeyType">9</int>
|
||||
<bool key="IBUIEnablesReturnKeyAutomatically">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<int key="IBUIClearButtonMode">3</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
<double key="pointSize">13</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">17</double>
|
||||
<double key="NSSize">13</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIButton" id="718744844">
|
||||
<object class="IBUIButton" id="519461955">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 274}, {280, 44}}</string>
|
||||
<string key="NSFrame">{{18, 237}, {285, 40}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:225</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Send</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
|
@ -92,6 +139,10 @@
|
|||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">login-login.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
|
@ -102,46 +153,15 @@
|
|||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUITextView" id="444208833">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{20, 49}, {280, 217}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSNextKeyView" ref="718744844"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAxIDEAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText"/>
|
||||
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
|
||||
<int key="IBUIAutocapitalizationType">2</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">14</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">14</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {320, 548}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="631354329"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
<reference key="NSCustomColorSpace" ref="412942702"/>
|
||||
</object>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics">
|
||||
|
@ -174,6 +194,31 @@
|
|||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">serverURL</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="207019938"/>
|
||||
</object>
|
||||
<int key="connectionID">14</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="207019938"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">15</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">login:</string>
|
||||
<reference key="source" ref="519461955"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">21</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
|
@ -187,9 +232,10 @@
|
|||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="292788658"/>
|
||||
<reference ref="444208833"/>
|
||||
<reference ref="718744844"/>
|
||||
<reference ref="519461955"/>
|
||||
<reference ref="97581516"/>
|
||||
<reference ref="207019938"/>
|
||||
<reference ref="631354329"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
|
@ -205,43 +251,95 @@
|
|||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="292788658"/>
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="631354329"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">24</int>
|
||||
<reference key="object" ref="718744844"/>
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="207019938"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">25</int>
|
||||
<reference key="object" ref="444208833"/>
|
||||
<int key="objectID">19</int>
|
||||
<reference key="object" ref="519461955"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="97581516"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">ContactUsViewController</string>
|
||||
<string key="-1.CustomClassName">AuthenticationViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">26</int>
|
||||
<int key="maxID">24</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">AuthenticationViewController</string>
|
||||
<string key="superclassName">GAITrackedViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">login:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">login:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">login:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">serverURL</string>
|
||||
<string key="NS.object.0">UITextField</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">serverURL</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">serverURL</string>
|
||||
<string key="candidateClassName">UITextField</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/AuthenticationViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">GAITrackedViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/GAITrackedViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">1929</string>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="login-field-background.png">{282, 38}</string>
|
||||
<string key="login-login.png">{282, 37}</string>
|
||||
<string key="register-background-568h@2x.png">{640, 1136}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">2083</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,9 +1,9 @@
|
|||
//
|
||||
// Constants.h
|
||||
// Photo
|
||||
// Trovebox
|
||||
//
|
||||
// Created by Patrick Santana on 05/09/11.
|
||||
// Copyright 2012 Photo
|
||||
// Copyright 2013 Trovebox
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
@ -16,7 +16,6 @@
|
|||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
@interface Constants : NSObject
|
||||
|
||||
|
@ -24,7 +23,9 @@ extern NSString * const kAppInitialized;
|
|||
extern NSString * const kPhotosSaveCameraRollOrSnapshot;
|
||||
extern NSString * const kPhotosSaveFiltered;
|
||||
extern NSString * const kPhotosArePrivate;
|
||||
extern NSString * const kOpenPhotoServer;
|
||||
extern NSString * const kTroveboxServer;
|
||||
extern NSString * const kTroveboxEmailUser;
|
||||
|
||||
extern NSString * const kHomeScreenPictures;
|
||||
extern NSString * const kHomeScreenPicturesTimestamp;
|
||||
extern NSString * const kServerDetails;
|
||||
|
@ -44,6 +45,7 @@ extern NSString * const kNotificationNeededsUpdate;
|
|||
extern NSString * const kNotificationNeededsUpdateHome;
|
||||
extern NSString * const kNotificationDisableUpdateHome;
|
||||
extern NSString * const kNotificationUpdateTableWithAllPhotosAgain;
|
||||
extern NSString * const kNotificationProfileRefresh;
|
||||
|
||||
extern NSString * const kCellIdentifierTitle;
|
||||
extern NSString * const kCellIdentifierTags;
|
||||
|
@ -58,9 +60,23 @@ extern NSString * const kValidateNotAllowedLocation;
|
|||
|
||||
extern NSString * const kSyncShowUploadedPhotos;
|
||||
|
||||
// Facebook
|
||||
extern NSString * const kFacebookUserConnected;
|
||||
extern NSString * const kFacebookUserConnectedEmail;
|
||||
extern NSString * const kFacebookUserConnectedUsername;
|
||||
|
||||
// For profile
|
||||
extern NSString * const kProfileAccountType;
|
||||
extern NSString * const kProfileLimitRemaining;
|
||||
extern NSString * const kProfileAccountProReceipt;
|
||||
extern NSString * const kProfileLatestUpdateDate;
|
||||
|
||||
// when defined, we will use Google Analytics
|
||||
#define GOOGLE_ANALYTICS_ENABLED
|
||||
|
||||
// while using TestFlight, this variable will permit the app to save/send data
|
||||
#define TEST_FLIGHT_ENABLED
|
||||
|
||||
// a lot of logs, don't use in production env.
|
||||
#define DEVELOPMENT_ENABLED
|
||||
|
||||
|
@ -68,7 +84,7 @@ extern NSString * const kSyncShowUploadedPhotos;
|
|||
#define DEVELOPMENT_ENABLED_JSON_RETURN
|
||||
|
||||
// if set developer can have credentials printed in the console
|
||||
// #define DEVELOPMENT_CREDENTIALS_LOG_ENABLED
|
||||
#define DEVELOPMENT_CREDENTIALS_LOG_ENABLED
|
||||
|
||||
// to transform color from hex to RBG
|
||||
//RGB color macro
|
||||
|
@ -77,9 +93,5 @@ extern NSString * const kSyncShowUploadedPhotos;
|
|||
|
||||
#define NSLog(__FORMAT__, ...) TFLog((@"%s [Line %d] " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
||||
|
||||
// Facebook
|
||||
extern NSString * const kFacebookUserConnected;
|
||||
extern NSString * const kFacebookUserConnectedEmail;
|
||||
extern NSString * const kFacebookUserConnectedUsername;
|
||||
|
||||
@end
|
|
@ -1,9 +1,9 @@
|
|||
//
|
||||
// Constants.m
|
||||
// Photo
|
||||
// Trovebox
|
||||
//
|
||||
// Created by Patrick Santana on 05/09/11.
|
||||
// Copyright 2012 Photo
|
||||
// Copyright 2013 Trovebox
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
@ -16,7 +16,6 @@
|
|||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
#import "Constants.h"
|
||||
|
||||
|
@ -31,8 +30,10 @@ NSString * const kPhotosSaveCameraRollOrSnapshot=@"photos_save_camera_roll_or_sn
|
|||
NSString * const kPhotosSaveFiltered=@"photos_save_filtered";
|
||||
// Privacy - NSUserDefaults name
|
||||
NSString * const kPhotosArePrivate=@"photos_are_private";
|
||||
// NSUserDefault variable name for the OpenPhoto Server
|
||||
NSString * const kOpenPhotoServer=@"account_server";
|
||||
// NSUserDefault variable name for the Trovebox Server
|
||||
NSString * const kTroveboxServer=@"account_server";
|
||||
// user email
|
||||
NSString * const kTroveboxEmailUser=@"account_user_email";
|
||||
// NSUserDefault variable to hold user pictures
|
||||
NSString * const kHomeScreenPictures=@"home_pictures";
|
||||
// NSUserDefault variable with information about the last time that the pictures were refreshed
|
||||
|
@ -67,6 +68,7 @@ NSString * const kNotificationNeededsUpdate=@"notification_needs_update";
|
|||
NSString * const kNotificationNeededsUpdateHome=@"notification_needs_update_home_screen";
|
||||
NSString * const kNotificationDisableUpdateHome=@"notification_disable_update_home_screen";
|
||||
NSString * const kNotificationUpdateTableWithAllPhotosAgain=@"notification_update_table_with_all_pictures";
|
||||
NSString * const kNotificationProfileRefresh=@"notification_update_profile_information";
|
||||
|
||||
|
||||
/*
|
||||
|
@ -95,6 +97,7 @@ NSString * const kValidateNotAllowedLocation=@"validate_not_allowed_location";
|
|||
*/
|
||||
NSString * const kSyncShowUploadedPhotos=@"sync_show_uploaded_photos";
|
||||
|
||||
|
||||
/*
|
||||
* Facebook
|
||||
*/
|
||||
|
@ -102,4 +105,11 @@ NSString * const kFacebookUserConnected=@"facebook_user_connected";
|
|||
NSString * const kFacebookUserConnectedEmail=@"facebook_user_connected_email";
|
||||
NSString * const kFacebookUserConnectedUsername=@"facebook_user_connected_username";
|
||||
|
||||
|
||||
// For profile
|
||||
NSString * const kProfileAccountType=@"profile_account_type";
|
||||
NSString * const kProfileLimitRemaining=@"profile_limit_remaining";
|
||||
NSString * const kProfileAccountProReceipt=@"profile_account_pro_receipt";
|
||||
NSString * const kProfileLatestUpdateDate=@"profile_latest_update_date";
|
||||
|
||||
@end
|
||||
|
|
|
@ -1,80 +0,0 @@
|
|||
//
|
||||
// ContactUsViewController.m
|
||||
// Photo
|
||||
//
|
||||
// Created by Patrick Santana on 29/10/12.
|
||||
// Copyright 2012 Photo
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
|
||||
|
||||
#import "ContactUsViewController.h"
|
||||
|
||||
@interface ContactUsViewController ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation ContactUsViewController
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
||||
{
|
||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:self.viewDeckController action:@selector(toggleLeftView)];
|
||||
|
||||
if ([self.navigationItem respondsToSelector:@selector(rightBarButtonItems)]) {
|
||||
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:
|
||||
[[UIBarButtonItem alloc] initWithTitle:@"Sync" style:UIBarButtonItemStyleBordered target:self.viewDeckController action:@selector(toggleRightView)],
|
||||
nil];
|
||||
}
|
||||
else {
|
||||
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Sync" style:UIBarButtonItemStyleBordered target:self.viewDeckController action:@selector(toggleRightView)];
|
||||
}
|
||||
|
||||
// image for the navigator
|
||||
if([[UINavigationBar class] respondsToSelector:@selector(appearance)]){
|
||||
//iOS >=5.0
|
||||
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"appbar_empty.png"] forBarMetrics:UIBarMetricsDefault];
|
||||
}else{
|
||||
UIImageView *imageView = (UIImageView *)[self.navigationController.navigationBar viewWithTag:6183746];
|
||||
if (imageView == nil)
|
||||
{
|
||||
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"appbar_empty.png"]];
|
||||
[imageView setTag:6183746];
|
||||
[self.navigationController.navigationBar insertSubview:imageView atIndex:0];
|
||||
}
|
||||
}
|
||||
|
||||
self.view.backgroundColor = UIColorFromRGB(0xFFCC00);
|
||||
// title
|
||||
self.navigationItem.title = NSLocalizedString(@"Contact Us", @"Menu - title for Contact us");
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,234 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">12C60</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2843</string>
|
||||
<string key="IBDocument.AppKitVersion">1187.34</string>
|
||||
<string key="IBDocument.HIToolboxVersion">625.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1929</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUITextView</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUITextView" id="332650620">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{20, 42}, {280, 206}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSNextKeyView" ref="1062371991"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAxIDEAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText"/>
|
||||
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
|
||||
<int key="IBUIAutocapitalizationType">2</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">14</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">14</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="439719923">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 13}, {69, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSNextKeyView" ref="332650620"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Message</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIButton" id="1062371991">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 256}, {280, 44}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Send</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSNextKeyView" ref="439719923"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<object class="IBUISimulatedSizeMetrics" key="IBUISimulatedDestinationMetrics">
|
||||
<string key="IBUISimulatedSizeMetricsClass">IBUISimulatedFreeformSizeMetricsSentinel</string>
|
||||
<string key="IBUIDisplayName">Freeform</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="332650620"/>
|
||||
<reference ref="439719923"/>
|
||||
<reference ref="1062371991"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">17</int>
|
||||
<reference key="object" ref="332650620"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">18</int>
|
||||
<reference key="object" ref="439719923"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">19</int>
|
||||
<reference key="object" ref="1062371991"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">ContactUsViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">20</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">1929</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,9 +1,9 @@
|
|||
//
|
||||
// ContentTypeUtilities.h
|
||||
// Photo
|
||||
// Trovebox
|
||||
//
|
||||
// Created by Patrick Santana on 29/03/12.
|
||||
// Copyright 2012 Photo
|
||||
// Copyright 2013 Trovebox
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
//
|
||||
// ContentTypeUtilities.m
|
||||
// Photo
|
||||
// Trovebox
|
||||
//
|
||||
// Created by Patrick Santana on 29/03/12.
|
||||
// Copyright 2012 Photo
|
||||
// Copyright 2013 Trovebox
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -129,28 +129,31 @@
|
|||
{
|
||||
if (!self.suspendAutomaticTrackingOfChangesInManagedObjectContext)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
switch(type) {
|
||||
|
||||
case NSFetchedResultsChangeInsert:
|
||||
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]
|
||||
withRowAnimation:UITableViewRowAnimationFade];
|
||||
break;
|
||||
|
||||
case NSFetchedResultsChangeDelete:
|
||||
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
|
||||
withRowAnimation:UITableViewRowAnimationFade];
|
||||
break;
|
||||
|
||||
case NSFetchedResultsChangeUpdate:
|
||||
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
|
||||
break;
|
||||
|
||||
case NSFetchedResultsChangeMove:
|
||||
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
|
||||
withRowAnimation:UITableViewRowAnimationFade];
|
||||
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]
|
||||
withRowAnimation:UITableViewRowAnimationFade];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
|
||||
{
|
||||
if (self.beganUpdates) {
|
||||
|
|
12
Photo/DateUtilities.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
//
|
||||
// DateUtilities.h
|
||||
// Trovebox
|
||||
//
|
||||
// Created by Patrick Santana on 28/02/13.
|
||||
// Copyright (c) 2013 Trovebox. All rights reserved.
|
||||
//
|
||||
@interface DateUtilities : NSObject
|
||||
|
||||
+ (int)daysBetween:(NSDate *)dt1 and:(NSDate *)dt2;
|
||||
|
||||
@end
|