initial version of pods. don't donwload this version
BIN
Crashlytics.framework/Versions/A/Crashlytics
vendored
|
@ -15,13 +15,13 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.1.1</string>
|
||||
<string>2.1.5</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>iPhoneOS</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>7</string>
|
||||
<string>16</string>
|
||||
<key>DTPlatformName</key>
|
||||
<string>iphoneos</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
|
|
BIN
Crashlytics.framework/run
vendored
|
@ -1,8 +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>get-task-allow</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 3ed0b3c945937bb8e4b96c08bd3382d7839fb86e
|
1
Frameworks/Crashlytics.framework/Crashlytics
vendored
|
@ -1 +0,0 @@
|
|||
Versions/Current/Crashlytics
|
1
Frameworks/Crashlytics.framework/Headers
vendored
|
@ -1 +0,0 @@
|
|||
Versions/Current/Headers
|
1
Frameworks/Crashlytics.framework/Resources
vendored
|
@ -1 +0,0 @@
|
|||
Versions/Current/Resources
|
|
@ -1,217 +0,0 @@
|
|||
//
|
||||
// Crashlytics.h
|
||||
// Crashlytics
|
||||
//
|
||||
// Copyright 2013 Crashlytics, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/**
|
||||
*
|
||||
* The CLS_LOG macro provides as easy way to gather more information in your log messages that are
|
||||
* sent with your crash data. CLS_LOG prepends your custom log message with the function name and
|
||||
* line number where the macro was used. If your app was built with the DEBUG preprocessor macro
|
||||
* defined CLS_LOG uses the CLSNSLog function which forwards your log message to NSLog and CLSLog.
|
||||
* If the DEBUG preprocessor macro is not defined CLS_LOG uses CLSLog only.
|
||||
*
|
||||
* Example output:
|
||||
* -[AppDelegate login:] line 134 $ login start
|
||||
*
|
||||
* If you would like to change this macro, create a new header file, unset our define and then define
|
||||
* your own version. Make sure this new header file is imported after the Crashlytics header file.
|
||||
*
|
||||
* #undef CLS_LOG
|
||||
* #define CLS_LOG(__FORMAT__, ...) CLSNSLog...
|
||||
*
|
||||
**/
|
||||
#ifdef DEBUG
|
||||
#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
||||
#else
|
||||
#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
/**
|
||||
*
|
||||
* Add logging that will be sent with your crash data. This logging will not show up in the system.log
|
||||
* and will only be visible in your Crashlytics dashboard.
|
||||
*
|
||||
**/
|
||||
OBJC_EXTERN void CLSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
|
||||
|
||||
/**
|
||||
*
|
||||
* Add logging that will be sent with your crash data. This logging will show up in the system.log
|
||||
* and your Crashlytics dashboard. It is not recommended for Release builds.
|
||||
*
|
||||
**/
|
||||
OBJC_EXTERN void CLSNSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
|
||||
|
||||
@protocol CrashlyticsDelegate;
|
||||
|
||||
@interface Crashlytics : NSObject
|
||||
|
||||
@property (nonatomic, readonly, copy) NSString *apiKey;
|
||||
@property (nonatomic, readonly, copy) NSString *version;
|
||||
@property (nonatomic, assign) BOOL debugMode;
|
||||
|
||||
@property (nonatomic, assign) NSObject <CrashlyticsDelegate> *delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* The recommended way to install Crashlytics into your application is to place a call
|
||||
* to +startWithAPIKey: in your -application:didFinishLaunchingWithOptions: method.
|
||||
*
|
||||
* This delay defaults to 1 second in order to generally give the application time to
|
||||
* fully finish launching.
|
||||
*
|
||||
**/
|
||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey;
|
||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey afterDelay:(NSTimeInterval)delay;
|
||||
|
||||
/**
|
||||
*
|
||||
* If you need the functionality provided by the CrashlyticsDelegate protocol, you can use
|
||||
* these convenience methods to activate the framework and set the delegate in one call.
|
||||
*
|
||||
**/
|
||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(NSObject <CrashlyticsDelegate> *)delegate;
|
||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(NSObject <CrashlyticsDelegate> *)delegate afterDelay:(NSTimeInterval)delay;
|
||||
|
||||
/**
|
||||
*
|
||||
* Access the singleton Crashlytics instance.
|
||||
*
|
||||
**/
|
||||
+ (Crashlytics *)sharedInstance;
|
||||
|
||||
/**
|
||||
*
|
||||
* The easiest way to cause a crash - great for testing!
|
||||
*
|
||||
**/
|
||||
- (void)crash;
|
||||
|
||||
/**
|
||||
*
|
||||
* Many of our customers have requested the ability to tie crashes to specific end-users of their
|
||||
* application in order to facilitate responses to support requests or permit the ability to reach
|
||||
* out for more information. We allow you to specify up to three separate values for display within
|
||||
* the Crashlytics UI - but please be mindful of your end-user's privacy.
|
||||
*
|
||||
* We recommend specifying a user identifier - an arbitrary string that ties an end-user to a record
|
||||
* in your system. This could be a database id, hash, or other value that is meaningless to a
|
||||
* third-party observer but can be indexed and queried by you.
|
||||
*
|
||||
* Optionally, you may also specify the end-user's name or username, as well as email address if you
|
||||
* do not have a system that works well with obscured identifiers.
|
||||
*
|
||||
* Pursuant to our EULA, this data is transferred securely throughout our system and we will not
|
||||
* disseminate end-user data unless required to by law. That said, if you choose to provide end-user
|
||||
* contact information, we strongly recommend that you disclose this in your application's privacy
|
||||
* policy. Data privacy is of our utmost concern.
|
||||
*
|
||||
**/
|
||||
- (void)setUserIdentifier:(NSString *)identifier;
|
||||
- (void)setUserName:(NSString *)name;
|
||||
- (void)setUserEmail:(NSString *)email;
|
||||
|
||||
+ (void)setUserIdentifier:(NSString *)identifier;
|
||||
+ (void)setUserName:(NSString *)name;
|
||||
+ (void)setUserEmail:(NSString *)email;
|
||||
|
||||
/**
|
||||
*
|
||||
* Set a value for a key to be associated with your crash data.
|
||||
*
|
||||
**/
|
||||
- (void)setObjectValue:(id)value forKey:(NSString *)key;
|
||||
- (void)setIntValue:(int)value forKey:(NSString *)key;
|
||||
- (void)setBoolValue:(BOOL)value forKey:(NSString *)key;
|
||||
- (void)setFloatValue:(float)value forKey:(NSString *)key;
|
||||
|
||||
+ (void)setObjectValue:(id)value forKey:(NSString *)key;
|
||||
+ (void)setIntValue:(int)value forKey:(NSString *)key;
|
||||
+ (void)setBoolValue:(BOOL)value forKey:(NSString *)key;
|
||||
+ (void)setFloatValue:(float)value forKey:(NSString *)key;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
* The CLSCrashReport protocol exposes methods that you can call on crash report objects passed
|
||||
* to delegate methods. If you want these values or the entire object to stay in memory retain
|
||||
* them or copy them.
|
||||
**/
|
||||
@protocol CLSCrashReport <NSObject>
|
||||
@required
|
||||
|
||||
/**
|
||||
* Returns the session identifier for the crash report.
|
||||
**/
|
||||
@property (nonatomic, readonly) NSString *identifier;
|
||||
|
||||
/**
|
||||
* Returns the custom key value data for the crash report.
|
||||
**/
|
||||
@property (nonatomic, readonly) NSDictionary *customKeys;
|
||||
|
||||
/**
|
||||
* Returns the CFBundleVersion of the application that crashed.
|
||||
**/
|
||||
@property (nonatomic, readonly) NSString *bundleVersion;
|
||||
|
||||
/**
|
||||
* Returns the CFBundleShortVersionString of the application that crashed.
|
||||
**/
|
||||
@property (nonatomic, readonly) NSString *bundleShortVersionString;
|
||||
|
||||
/**
|
||||
* Returns the date that the application crashed at.
|
||||
**/
|
||||
@property (nonatomic, readonly) NSDate *crashedOnDate;
|
||||
|
||||
/**
|
||||
* Returns the os version that the application crashed on.
|
||||
**/
|
||||
@property (nonatomic, readonly) NSString *OSVersion;
|
||||
|
||||
/**
|
||||
* Returns the os build version that the application crashed on.
|
||||
**/
|
||||
@property (nonatomic, readonly) NSString *OSBuildVersion;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
*
|
||||
* The CrashlyticsDelegate protocol provides a mechanism for your application to take
|
||||
* action on events that occur in the Crashlytics crash reporting system. You can make
|
||||
* use of these calls by assigning an object to the Crashlytics' delegate property directly,
|
||||
* or through the convenience startWithAPIKey:delegate:... methods.
|
||||
*
|
||||
**/
|
||||
@protocol CrashlyticsDelegate <NSObject>
|
||||
@optional
|
||||
|
||||
/**
|
||||
*
|
||||
* Called once a Crashlytics instance has determined that the last execution of the
|
||||
* application ended in a crash. This is called some time after the crash reporting
|
||||
* process has begun. If you have specified a delay in one of the
|
||||
* startWithAPIKey:... calls, this will take at least that long to be invoked.
|
||||
*
|
||||
**/
|
||||
- (void)crashlyticsDidDetectCrashDuringPreviousExecution:(Crashlytics *)crashlytics;
|
||||
|
||||
/**
|
||||
*
|
||||
* Just like crashlyticsDidDetectCrashDuringPreviousExecution this delegate method is
|
||||
* called once a Crashlytics instance has determined that the last execution of the
|
||||
* application ended in a crash. A CLSCrashReport is passed back that contains data about
|
||||
* the last crash report that was generated. See the CLSCrashReport protocol for method details.
|
||||
* This method is called after crashlyticsDidDetectCrashDuringPreviousExecution.
|
||||
*
|
||||
**/
|
||||
- (void)crashlytics:(Crashlytics *)crashlytics didDetectCrashDuringPreviousExecution:(id <CLSCrashReport>)crash;
|
||||
|
||||
@end
|
|
@ -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>CFBundleExecutable</key>
|
||||
<string>Crashlytics</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.crashlytics.ios</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Crashlytics</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.1.3</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>iPhoneOS</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>13</string>
|
||||
<key>DTPlatformName</key>
|
||||
<string>iphoneos</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>4.0</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1 +0,0 @@
|
|||
A
|
BIN
Frameworks/Crashlytics.framework/run
vendored
|
@ -1 +0,0 @@
|
|||
Subproject commit 525240f6ed44b79e1d7ae8cd473ac6523aca9630
|
|
@ -1,94 +0,0 @@
|
|||
Google Analytics SDK for iOS Changelog
|
||||
|
||||
--------------------------------------------
|
||||
Version: 3.01 (September 2013)
|
||||
-------------------------------------------
|
||||
* Fixed link error when targeting iOS 7.0.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 3.00 (August 2013)
|
||||
-------------------------------------------
|
||||
* SDK API change to align with analytics.js. The track<hittype> and
|
||||
send<hittype> methods have been removed. Use send and the
|
||||
GAIDictionaryBuilder construct methods instead.
|
||||
* Most properties on the GAITracker protocol have been removed. Use
|
||||
set on the various fields instead.
|
||||
* All parameters set using the set method will be persisted. Previously,
|
||||
several parameters would only be set for the next send/track call.
|
||||
* GAILogger protocol is available for those wanting to implement their
|
||||
own custom logging for the SDK.
|
||||
* Minimium system requirements have changed. See Readme.txt for details.
|
||||
* All SDK activity (database and network access) is now done on a separate
|
||||
thread.
|
||||
* Clientid can now be read. Call [tracker get:kGAIClientId]. Note that
|
||||
this call will block until the client id can be read from the database.
|
||||
* SDK no longer uses POST unless the hit is larger than 2000 bytes. It
|
||||
will use GET instead.
|
||||
* SDK will no longer retry sending hits based off the HTTP response code.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 2.0beta4 Update (Jan 2013)
|
||||
--------------------------------------------
|
||||
* 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: 2.0beta3 iOS6 Update (Sep 2012)
|
||||
--------------------------------------------
|
||||
* Add armv7s architecture to libGoogleAnalytics.a.
|
||||
* Remove armv6 architecture from libGoogleAnalytics.a.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 2.0beta3 (Aug 2012)
|
||||
--------------------------------------------
|
||||
* 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: 2.0beta2 (Jun 2012)
|
||||
--------------------------------------------
|
||||
* 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: 2.0beta1 (May 2012)
|
||||
--------------------------------------------
|
||||
* 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: 2.0alpha1 (April 2012)
|
||||
--------------------------------------------
|
||||
* Initial internal alpha release.
|
|
@ -1,23 +0,0 @@
|
|||
//
|
||||
// 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, strong) UIWindow *window;
|
||||
@property(nonatomic, strong) NavController *navController;
|
||||
@property(nonatomic, strong) RootViewController *viewController;
|
||||
@property(nonatomic, strong) id<GAITracker> tracker;
|
||||
@property(nonatomic, strong) NSDictionary *images;
|
||||
|
||||
@end
|
|
@ -1,95 +0,0 @@
|
|||
//
|
||||
// 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";
|
||||
static NSString *const kAllowTracking = @"allowTracking";
|
||||
|
||||
@interface AppDelegate ()
|
||||
|
||||
- (NSDictionary *)loadImages;
|
||||
|
||||
@end
|
||||
|
||||
@implementation AppDelegate
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
||||
[GAI sharedInstance].optOut =
|
||||
![[NSUserDefaults standardUserDefaults] boolForKey:kAllowTracking];
|
||||
}
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
self.images = [self loadImages];
|
||||
NSDictionary *appDefaults = @{kAllowTracking: @(YES)};
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
|
||||
// User must be able to opt out of tracking
|
||||
[GAI sharedInstance].optOut =
|
||||
![[NSUserDefaults standardUserDefaults] boolForKey:kAllowTracking];
|
||||
// Initialize Google Analytics with a 120-second dispatch interval. There is a
|
||||
// tradeoff between battery usage and timely dispatch.
|
||||
[GAI sharedInstance].dispatchInterval = 120;
|
||||
[GAI sharedInstance].trackUncaughtExceptions = YES;
|
||||
self.tracker = [[GAI sharedInstance] trackerWithName:@"CuteAnimals"
|
||||
trackingId:kTrackingId];
|
||||
|
||||
self.window =
|
||||
[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
||||
// Override point for customization after application launch.
|
||||
self.viewController =
|
||||
[[RootViewController alloc] initWithNibName:@"RootViewController"
|
||||
bundle:nil];
|
||||
|
||||
self.navController =
|
||||
[[NavController alloc] initWithRootViewController:self.viewController];
|
||||
self.navController.delegate = self.navController;
|
||||
|
||||
self.window.rootViewController = self.navController;
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
||||
- (NSDictionary *)loadImages {
|
||||
NSArray *contents = [[NSBundle mainBundle] pathsForResourcesOfType:@"jpg"
|
||||
inDirectory:nil];
|
||||
if (!contents) {
|
||||
NSLog(@"Failed to load directory contents");
|
||||
return nil;
|
||||
}
|
||||
NSMutableDictionary *images = [NSMutableDictionary dictionary];
|
||||
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[0];
|
||||
NSMutableArray *categoryImages = images[prefix];
|
||||
if (!categoryImages) {
|
||||
categoryImages = [NSMutableArray array];
|
||||
images[prefix] = categoryImages;
|
||||
}
|
||||
[categoryImages addObject:image];
|
||||
}
|
||||
for (NSString *cat in [images allKeys]) {
|
||||
NSArray *array = images[cat];
|
||||
NSLog(@"Category %@: %u image(s).", cat, array.count);
|
||||
}
|
||||
return images;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,22 +0,0 @@
|
|||
//
|
||||
// ViewController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "NavController.h"
|
||||
|
||||
@interface CategoryViewController :
|
||||
GAITrackedViewController<UITableViewDelegate, UITableViewDataSource>
|
||||
|
||||
@property(nonatomic, strong) NSString *category;
|
||||
@property(nonatomic, strong) IBOutlet UITableView *tableView;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibName
|
||||
bundle:(NSBundle *)nibBundle
|
||||
category:(NSString *)category;
|
||||
|
||||
@end
|
|
@ -1,105 +0,0 @@
|
|||
//
|
||||
// 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, strong) NSMutableArray *items;
|
||||
@property(nonatomic, weak) AppDelegate *delegate;
|
||||
|
||||
@end
|
||||
|
||||
@implementation CategoryViewController
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibName
|
||||
bundle:(NSBundle *)nibBundle
|
||||
category:(NSString *)category {
|
||||
self = [super initWithNibName:nibName
|
||||
bundle:nibBundle];
|
||||
if (self) {
|
||||
_category = category;
|
||||
_delegate = [UIApplication sharedApplication].delegate;
|
||||
self.title = [NSString stringWithFormat:@"Cute %@s", category];
|
||||
self.screenName = category;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
self.items = (self.delegate.images)[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)[indexPath.row];
|
||||
ImageViewController *imageViewController =
|
||||
[[ImageViewController alloc] initWithNibName:nil
|
||||
bundle:nil
|
||||
title:title
|
||||
image:image];
|
||||
[self.delegate.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];
|
||||
cell.textLabel.font = [UIFont systemFontOfSize:14];
|
||||
cell.detailTextLabel.font = [UIFont systemFontOfSize:12];
|
||||
}
|
||||
|
||||
cell.textLabel.text = [NSString stringWithFormat:@"%@ %d",
|
||||
self.category, indexPath.row];
|
||||
UIImage *image = (self.items)[indexPath.row];
|
||||
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d x %d",
|
||||
(int)image.size.width, (int)image.size.height];
|
||||
return cell;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,167 +0,0 @@
|
|||
<?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">
|
||||
<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>
|
||||
<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">
|
||||
<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="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">
|
||||
<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="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">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">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>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,168 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.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="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="843779117">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="774585933">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<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"/>
|
||||
<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="774585933"/>
|
||||
</object>
|
||||
<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">
|
||||
<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="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="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">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="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">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>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,45 +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>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>
|
|
@ -1,10 +0,0 @@
|
|||
#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
|
|
@ -1,420 +0,0 @@
|
|||
// !$*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 */; };
|
||||
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 */; };
|
||||
88679A8E17A184FA00F476D5 /* libGoogleAnalyticsServices.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 88679A8D17A184FA00F476D5 /* libGoogleAnalyticsServices.a */; };
|
||||
F7C47F21178B5B56003A7D0F /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F7C47F20178B5B55003A7D0F /* Settings.bundle */; };
|
||||
/* 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; };
|
||||
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>"; };
|
||||
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; };
|
||||
88679A8D17A184FA00F476D5 /* libGoogleAnalyticsServices.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libGoogleAnalyticsServices.a; path = ../../../../libGoogleAnalyticsServices.a; sourceTree = "<group>"; };
|
||||
F707E732174D7550008123BF /* GAIDictionaryBuilder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GAIDictionaryBuilder.h; path = ../../Library/GAIDictionaryBuilder.h; sourceTree = "<group>"; };
|
||||
F707E733174D7550008123BF /* GAIFields.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GAIFields.h; path = ../../Library/GAIFields.h; sourceTree = "<group>"; };
|
||||
F707E734174D7550008123BF /* GAILogger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GAILogger.h; path = ../../Library/GAILogger.h; sourceTree = "<group>"; };
|
||||
F7C47F20178B5B55003A7D0F /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; 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 */,
|
||||
88679A8E17A184FA00F476D5 /* libGoogleAnalyticsServices.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 = (
|
||||
F7C47F20178B5B55003A7D0F /* Settings.bundle */,
|
||||
11FCCC211561899800949704 /* Images */,
|
||||
113B6EEF153E1F0B003CAC38 /* CuteAnimals-Info.plist */,
|
||||
113B6EF5153E1F0B003CAC38 /* CuteAnimals-Prefix.pch */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6F1E153E1FAD003CAC38 /* Google Analytics Library */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
88679A8D17A184FA00F476D5 /* libGoogleAnalyticsServices.a */,
|
||||
F707E732174D7550008123BF /* GAIDictionaryBuilder.h */,
|
||||
F707E733174D7550008123BF /* GAIFields.h */,
|
||||
F707E734174D7550008123BF /* GAILogger.h */,
|
||||
11BC54021577E24400E7D657 /* GAI.h */,
|
||||
11BC54031577E24500E7D657 /* GAITrackedViewController.h */,
|
||||
11BC54041577E24500E7D657 /* GAITracker.h */,
|
||||
);
|
||||
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 = 0460;
|
||||
};
|
||||
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 */,
|
||||
F7C47F21178B5B56003A7D0F /* Settings.bundle 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)";
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"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)";
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"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 = {
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
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\"",
|
||||
"\"$(SRCROOT)/../../..\"",
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
113B6EFD153E1F0B003CAC38 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
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\"",
|
||||
"\"$(SRCROOT)/../../..\"",
|
||||
);
|
||||
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 */;
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
//
|
||||
// ImageViewController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "GAI.h"
|
||||
#import "NavController.h"
|
||||
|
||||
@interface ImageViewController : GAITrackedViewController
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil
|
||||
bundle:(NSBundle *)nibBundleOrNil
|
||||
title:(NSString *)title
|
||||
image:(UIImage *)image;
|
||||
|
||||
@end
|
|
@ -1,46 +0,0 @@
|
|||
//
|
||||
// ImageViewController.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ImageViewController.h"
|
||||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
@interface ImageViewController ()
|
||||
|
||||
@property(nonatomic, strong) UIImage *image;
|
||||
|
||||
@end
|
||||
|
||||
@implementation ImageViewController
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil
|
||||
bundle:(NSBundle *)nibBundleOrNil
|
||||
title:(NSString *)title
|
||||
image:(UIImage *)image {
|
||||
self = [super initWithNibName:nibNameOrNil
|
||||
bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
_image = image;
|
||||
self.title = self.screenName = title;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
UIImageView *imageView = [[UIImageView alloc] initWithImage:self.image];
|
||||
imageView.userInteractionEnabled = YES;
|
||||
imageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
[self.view addSubview:imageView];
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:
|
||||
(UIInterfaceOrientation)interfaceOrientation {
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
Before Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 78 KiB |
|
@ -1,13 +0,0 @@
|
|||
//
|
||||
// NavController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface NavController :
|
||||
UINavigationController<UINavigationControllerDelegate>
|
||||
|
||||
@end
|
|
@ -1,31 +0,0 @@
|
|||
//
|
||||
// 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
|
|
@ -1,13 +0,0 @@
|
|||
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
|
|
@ -1,15 +0,0 @@
|
|||
//
|
||||
// RootViewController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface RootViewController :
|
||||
GAITrackedViewController<UITableViewDelegate, UITableViewDataSource>
|
||||
|
||||
@property(nonatomic, strong) IBOutlet UITableView *tableView;
|
||||
|
||||
@end
|
|
@ -1,130 +0,0 @@
|
|||
//
|
||||
// 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"
|
||||
#import "GAIDictionaryBuilder.h"
|
||||
|
||||
@interface RootViewController ()
|
||||
|
||||
@property(nonatomic, strong) NSArray *items;
|
||||
@property(nonatomic, weak) AppDelegate *delegate;
|
||||
|
||||
@end
|
||||
|
||||
@implementation RootViewController
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibName
|
||||
bundle:(NSBundle *)nibBundle {
|
||||
self = [super initWithNibName:nibName
|
||||
bundle:nibBundle];
|
||||
if (self) {
|
||||
_delegate = [UIApplication sharedApplication].delegate;
|
||||
self.title = @"Cute Animals";
|
||||
self.screenName = @"root";
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (void)dispatch {
|
||||
NSMutableDictionary *event =
|
||||
[[GAIDictionaryBuilder createEventWithCategory:@"UI"
|
||||
action:@"buttonPress"
|
||||
label:@"dispatch"
|
||||
value:nil] build];
|
||||
[[GAI sharedInstance].defaultTracker send:event];
|
||||
[[GAI sharedInstance] dispatch];
|
||||
}
|
||||
|
||||
- (void)crash {
|
||||
[NSException raise:@"There is no spoon."
|
||||
format:@"Abort, retry, fail?"];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
self.navigationItem.leftBarButtonItem =
|
||||
[[UIBarButtonItem alloc] initWithTitle:@"Dispatch"
|
||||
style:UIBarButtonItemStyleBordered
|
||||
target:self
|
||||
action:@selector(dispatch)];
|
||||
self.navigationItem.rightBarButtonItem =
|
||||
[[UIBarButtonItem alloc] initWithTitle:@"Crash"
|
||||
style:UIBarButtonItemStyleBordered
|
||||
target:self
|
||||
action:@selector(crash)];
|
||||
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)[indexPath.row];
|
||||
NSString *nib = ([[UIDevice currentDevice] userInterfaceIdiom] ==
|
||||
UIUserInterfaceIdiomPhone) ? @"CategoryViewController_iPhone" :
|
||||
@"CategoryViewController_iPad";
|
||||
CategoryViewController *categoryController =
|
||||
[[CategoryViewController alloc] initWithNibName:nib
|
||||
bundle:nil
|
||||
category:category];
|
||||
[self.delegate.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)[indexPath.row];
|
||||
|
||||
static NSString *CellId = @"Cell";
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellId];
|
||||
if (!cell) {
|
||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
|
||||
reuseIdentifier:CellId];
|
||||
cell.textLabel.font = [UIFont systemFontOfSize:14];
|
||||
cell.detailTextLabel.font = [UIFont systemFontOfSize:12];
|
||||
}
|
||||
|
||||
NSString *label = [NSString stringWithFormat:@"Cute %@ Pictures!", category];
|
||||
cell.textLabel.text = label;
|
||||
NSUInteger imageCount = [(self.delegate.images)[category] count];
|
||||
cell.detailTextLabel.text = [NSString stringWithFormat:@"%u image(s).",
|
||||
imageCount];
|
||||
return cell;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,193 +0,0 @@
|
|||
<?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>
|
|
@ -1,21 +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>PreferenceSpecifiers</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>DefaultValue</key>
|
||||
<true/>
|
||||
<key>Key</key>
|
||||
<string>allowTracking</string>
|
||||
<key>Title</key>
|
||||
<string>Allow analytics</string>
|
||||
<key>Type</key>
|
||||
<string>PSToggleSwitchSpecifier</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>StringsTable</key>
|
||||
<string>Root</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1,17 +0,0 @@
|
|||
//
|
||||
// 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]));
|
||||
}
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
Google Analytics iOS SDK version 3.01
|
||||
Copyright 2009 - 2013 Google, Inc. All rights reserved.
|
||||
|
||||
================================================================================
|
||||
DESCRIPTION:
|
||||
|
||||
This SDK provides developers with the capability to use Google Analytics
|
||||
to track iOS application usage.
|
||||
|
||||
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,
|
||||
GAIDictionaryBuilder.h, GAIFields.h, GAILogger.h, GAITrackedViewController.h
|
||||
and GAITracker.h) and libGoogleAnalyticsV3(?).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 libGoogleAnalyticsServices.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
|
||||
activity inside of your app.
|
||||
|
||||
Implementation Details:
|
||||
|
||||
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 10.6 or later.
|
||||
XCode with iOS SDK 5.0 or later.
|
||||
|
||||
================================================================================
|
||||
RUNTIME REQUIREMENTS:
|
||||
|
||||
iOS 5.0 or later.
|
||||
|
||||
Your app must link the following frameworks:
|
||||
CoreData.framework
|
||||
SystemConfiguration.framework
|
||||
|
||||
================================================================================
|
||||
PACKAGING LIST:
|
||||
|
||||
Library/ (contains header and library files to compile and link with)
|
||||
GAI.h
|
||||
GAIDictionaryBuilder.h
|
||||
GAIFields.h
|
||||
GAILogger.h
|
||||
GAITrackedViewController.h
|
||||
GAITracker.h
|
||||
libGoogleAnalytics.a
|
||||
libGoogleAnalytics_debug.a
|
||||
Examples/ (contains an example tracked application)
|
||||
Documentation/ (contains documentation)
|
||||
|
||||
================================================================================
|
|
@ -1,90 +0,0 @@
|
|||
Google Tag Manager SDK for iOS Change Log
|
||||
|
||||
--------------------------------------------
|
||||
Version: 3.01 (September, 2013)
|
||||
--------------------------------------------
|
||||
* Fixed link error when targeting iOS 7.0
|
||||
|
||||
--------------------------------------------
|
||||
Version: 3.0 (August 16, 2013)
|
||||
--------------------------------------------
|
||||
* Added support for AdWords Conversion Tracking Tag, AdWords Remarketing Tag,
|
||||
and Custom Image Tag.
|
||||
|
||||
* Added Advertising Enabled Macro, Application ID Macro, and ID for
|
||||
Advertising Macro.
|
||||
|
||||
* Pushing a link to the data layer as "gtm.url" will now cache the
|
||||
Click Referrer for AdWords Tags.
|
||||
|
||||
* Updated cuteAnimals sample app to demonstrate how to use Function Call Macro
|
||||
and Function Call Tag.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 3.0b1 (July 26, 2013)
|
||||
--------------------------------------------
|
||||
* libGoogleAnalyticsServices.a replaces libTagManager.a in the
|
||||
downloaded SDK. libGoogleAnalyticsServices.a includes all functions
|
||||
in libTagManager.a plus version 3 of the Google Analytics SDK.
|
||||
Note that an application can't include both libGoogleAnalyticsServices.a
|
||||
and the old libGoogleAnalytics.a or libTagManager.a file.
|
||||
An application that wants to use GTM and also do analytics tracking should
|
||||
either update their GA calls to use version 3 of the SDK, or replace GA
|
||||
calls with data layer push calls and add appropriate rules to their
|
||||
container to fire Universal Analytics hits.
|
||||
|
||||
* Added Tag support in SDK. There are 2 types of tags currently supported:
|
||||
Universal Analytics (beta) tag and Custom Function Tag.
|
||||
|
||||
* Added DataLayer support to hold generic information about the application.
|
||||
An app can obtain the DataLayer object by calling TagManager::dataLayer.
|
||||
|
||||
* Added 2 new macros: data layer variable macro and custom event macro.
|
||||
|
||||
* Added LogLevel support into Logger. This allows adjusting the threshold of
|
||||
what gets logged without having to write a new logger.
|
||||
|
||||
* Added preview exit link support to allow exiting preview mode of a container
|
||||
without killing the app.
|
||||
|
||||
* Fixed a bug that prevented developers from using both GTM and open-sourced
|
||||
proto buffer library.
|
||||
|
||||
* Modified the cuteAnimals example to show how to instrument an application
|
||||
by pushing events to the data layer. A sample container is provided that
|
||||
uses the pushed events to fire Google Universal Analytics tag.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.0b3 (June 26, 2013)
|
||||
--------------------------------------------
|
||||
* TagManager::openContainer no longer allows opening multiple containers with
|
||||
the same container ID.
|
||||
|
||||
* ContainerOpener no longer has the two methods
|
||||
openNonDefaultContainerWithId:tagManager:timeout:notifier and
|
||||
openFreshContainerWithId:tagManager:timeout:notifier:.
|
||||
Instead, there are now two openContainer methods:
|
||||
openContainerWithId:tagManager:openType:timeout: and
|
||||
openContainerWithId:tagManager:openType:timeout:notifier.
|
||||
The first returns a TAGContainerFuture, while the other takes a notifier.
|
||||
Both of these methods take a parameter specifying how the container should
|
||||
be opened (kTAGPreferNonDefault or kTAGPreferFresh). This should reduce
|
||||
confusion as to how TAGContainerFutures and notifiers interact.
|
||||
|
||||
These two new methods can be called more than once with the same
|
||||
container ID; if the container is already open, it'll be returned (via the
|
||||
future or notifier).
|
||||
|
||||
* In container preview mode, containers that are already open will be
|
||||
auto-updated (was just updating the container on the next open).
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.0b2 (June 3, 2013)
|
||||
--------------------------------------------
|
||||
* Initial beta release.
|
||||
|
||||
--------------------------------------------
|
||||
Version: 1.0b1
|
||||
--------------------------------------------
|
||||
* Unreleased internal version.
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
//
|
||||
// AppDelegate.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class RootViewController;
|
||||
@class NavController;
|
||||
@class TAGManager;
|
||||
@class TAGContainer;
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property(nonatomic, retain) UIWindow *window;
|
||||
@property(nonatomic, retain) NavController *navController;
|
||||
@property(nonatomic, retain) RootViewController *viewController;
|
||||
@property(nonatomic, retain) NSDictionary *images;
|
||||
@property(nonatomic, retain) TAGManager *tagManager;
|
||||
@property(nonatomic, retain) TAGContainer *container;
|
||||
|
||||
@end
|
|
@ -1,135 +0,0 @@
|
|||
//
|
||||
// AppDelegate.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
#endif
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "CustomMacroHandler.h"
|
||||
#import "CustomTagHandler.h"
|
||||
#import "NavController.h"
|
||||
#import "RootViewController.h"
|
||||
#import "TAGContainer.h"
|
||||
#import "TAGContainerOpener.h"
|
||||
#import "TAGLogger.h"
|
||||
#import "TAGManager.h"
|
||||
|
||||
@interface AppDelegate ()
|
||||
|
||||
- (NSDictionary *)loadImages;
|
||||
|
||||
@end
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
@synthesize window = _window;
|
||||
@synthesize navController = _navController;
|
||||
@synthesize viewController = _viewController;
|
||||
@synthesize images = _images;
|
||||
@synthesize tagManager = _tagManager;
|
||||
@synthesize container = _container;
|
||||
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
self.tagManager = [TAGManager instance];
|
||||
|
||||
// Modify the log level of the logger to print out not only
|
||||
// warning and error messages, but also verbose, debug, info messages.
|
||||
[self.tagManager.logger setLogLevel:kTAGLoggerLogLevelVerbose];
|
||||
|
||||
// Following provides ability to support preview from Tag Manager.
|
||||
// You need to make these calls before opening a container to make
|
||||
// preview works.
|
||||
NSURL *url = [launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
|
||||
if (url != nil) {
|
||||
[self.tagManager previewWithUrl:url];
|
||||
}
|
||||
|
||||
// Open a container.
|
||||
id<TAGContainerFuture> future =
|
||||
[TAGContainerOpener openContainerWithId:@"GTM-XXXX"
|
||||
tagManager:self.tagManager
|
||||
openType:kTAGOpenTypePreferNonDefault
|
||||
timeout:nil];
|
||||
|
||||
self.images = [self loadImages];
|
||||
|
||||
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
||||
|
||||
self.container = [future get];
|
||||
// Register two custom function call macros to the container.
|
||||
[self.container registerFunctionCallMacroHandler:[[CustomMacroHandler alloc] init]
|
||||
forMacro:@"increment"];
|
||||
[self.container registerFunctionCallMacroHandler:[[CustomMacroHandler alloc] init]
|
||||
forMacro:@"mod"];
|
||||
// Register a custom function call tag to the container.
|
||||
[self.container registerFunctionCallTagHandler:[[CustomTagHandler alloc] init]
|
||||
forTag:@"custom_tag"];
|
||||
|
||||
self.viewController = [[RootViewController alloc] initWithNibName:@"RootViewController"
|
||||
bundle:nil];
|
||||
|
||||
self.navController = [[NavController alloc] initWithRootViewController:self.viewController];
|
||||
self.navController.delegate = self.navController;
|
||||
|
||||
self.viewController.navController = self.navController;
|
||||
self.window.rootViewController = self.navController;
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application
|
||||
openURL:(NSURL *)url
|
||||
sourceApplication:(NSString *)sourceApplication
|
||||
annotation:(id)annotation {
|
||||
if ([self.tagManager previewWithUrl:url]) {
|
||||
return YES;
|
||||
}
|
||||
|
||||
// Code to handle other urls.
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (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
|
|
@ -1,22 +0,0 @@
|
|||
//
|
||||
// CategoryViewController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "NavController.h"
|
||||
|
||||
@interface CategoryViewController : UIViewController<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
|
|
@ -1,130 +0,0 @@
|
|||
//
|
||||
// CategoryViewController.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2012 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
#endif
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "CategoryViewController.h"
|
||||
#import "ImageViewController.h"
|
||||
#import "TAGContainer.h"
|
||||
#import "TAGDataLayer.h"
|
||||
#import "TAGManager.h"
|
||||
#import "Utils.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.delegate = [UIApplication sharedApplication].delegate;
|
||||
NSString *adjective = [self.delegate.container stringForKey:@"Adjective"];
|
||||
self.title = [NSString stringWithFormat:@"%@ %@s", adjective, category];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
// Override
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
self.items = [self.delegate.images objectForKey:self.category];
|
||||
// Put the category_name into the data layer for future use.
|
||||
[self.delegate.tagManager.dataLayer pushValue:self.category
|
||||
forKey:@"category_name"];
|
||||
}
|
||||
|
||||
// Override
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
[Utils pushOpenScreenEventWithScreenName:@"CategoryViewScreen"];
|
||||
}
|
||||
|
||||
// Override
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewDidDisappear:animated];
|
||||
[Utils pushCloseScreenEventWithScreenName:@"CategoryViewScreen"];
|
||||
}
|
||||
|
||||
// Override
|
||||
- (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];
|
||||
[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];
|
||||
}
|
||||
|
||||
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,167 +0,0 @@
|
|||
<?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">
|
||||
<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>
|
||||
<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">
|
||||
<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="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">
|
||||
<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="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">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">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>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,193 +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">12C2034</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2844</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">1930</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUITableView</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="843779117">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="774585933">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<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"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<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="NSWindow"/>
|
||||
<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"/>
|
||||
<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="774585933"/>
|
||||
</object>
|
||||
<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">
|
||||
<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="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="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">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="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">29</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">CategoryViewController</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/CategoryViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</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>
|
||||
<real value="1536" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">1930</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -1,14 +0,0 @@
|
|||
//
|
||||
// CustomMacroHandler.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TAGContainer.h"
|
||||
|
||||
@interface CustomMacroHandler : NSObject <TAGFunctionCallMacroHandler>
|
||||
|
||||
@property(nonatomic) NSUInteger numOfCalls;
|
||||
|
||||
@end
|
|
@ -1,34 +0,0 @@
|
|||
//
|
||||
// CustomMacroHandler.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
#endif
|
||||
|
||||
#import "CustomMacroHandler.h"
|
||||
|
||||
@implementation CustomMacroHandler
|
||||
|
||||
- (id)valueForMacro:(NSString *)macroName
|
||||
parameters:(NSDictionary *)parameters {
|
||||
if ([macroName isEqual:@"increment"]) {
|
||||
self.numOfCalls++;
|
||||
return [NSString stringWithFormat:@"%d", self.numOfCalls];
|
||||
} else if ([macroName isEqual:@"mod"]) {
|
||||
NSString *value1 = parameters[@"key1"];
|
||||
NSString *value2 = parameters[@"key2"];
|
||||
return [NSNumber numberWithInt:([value1 intValue] % [value2 intValue])];
|
||||
} else {
|
||||
NSString *message =
|
||||
[NSString stringWithFormat:@"Custom macro name: %@ is not supported", macroName];
|
||||
@throw [NSException exceptionWithName:@"IllegalArgumentException"
|
||||
reason:message
|
||||
userInfo:nil];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,12 +0,0 @@
|
|||
//
|
||||
// CustomTagHandler.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TAGContainer.h"
|
||||
|
||||
@interface CustomTagHandler : NSObject <TAGFunctionCallTagHandler>
|
||||
|
||||
@end
|
|
@ -1,21 +0,0 @@
|
|||
//
|
||||
// CustomTagHandler.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
#endif
|
||||
|
||||
#import "CustomTagHandler.h"
|
||||
|
||||
@implementation CustomTagHandler
|
||||
|
||||
- (void)execute:(NSString *)tagName parameters:(NSDictionary *)parameters {
|
||||
NSLog(@"Custom function call tag :%@ is fired", tagName);
|
||||
// Other code firing this custom tag.
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,56 +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>en</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.google.tagmanager.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>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>com.companyname.appname</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>tagmanager.c.com.google.tagmanager.example.cuteAnimals</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<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>
|
|
@ -1,10 +0,0 @@
|
|||
#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
|
|
@ -1,449 +0,0 @@
|
|||
// !$*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 */; };
|
||||
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 */; };
|
||||
47CD7CE717BAA2B1008840A0 /* CustomTagHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47CD7CE617BAA2B1008840A0 /* CustomTagHandler.m */; };
|
||||
47CD7CED17BAA447008840A0 /* CustomMacroHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47CD7CEC17BAA447008840A0 /* CustomMacroHandler.m */; };
|
||||
47CD7CF117BACB30008840A0 /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47CD7CF017BACB30008840A0 /* AdSupport.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
47EC965217A19FDD00D685C9 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 47EC965117A19FDD00D685C9 /* Utils.m */; };
|
||||
47EC965417A1C9EB00D685C9 /* GTM-XXXX in Resources */ = {isa = PBXBuildFile; fileRef = 47EC965317A1C9EB00D685C9 /* GTM-XXXX */; };
|
||||
47EC965A17A1CCDE00D685C9 /* Container.png in Resources */ = {isa = PBXBuildFile; fileRef = 47EC965917A1CCDE00D685C9 /* Container.png */; };
|
||||
88679A8C17A1841C00F476D5 /* libGoogleAnalyticsServices.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 88679A8B17A1841C00F476D5 /* libGoogleAnalyticsServices.a */; };
|
||||
F4FE3F5617555573000A691A /* GTM-XXXX.plist in Resources */ = {isa = PBXBuildFile; fileRef = F4FE3F5517555573000A691A /* GTM-XXXX.plist */; };
|
||||
/* 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; };
|
||||
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; };
|
||||
47CD7CE517BAA2B1008840A0 /* CustomTagHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTagHandler.h; sourceTree = SOURCE_ROOT; };
|
||||
47CD7CE617BAA2B1008840A0 /* CustomTagHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTagHandler.m; sourceTree = SOURCE_ROOT; };
|
||||
47CD7CEB17BAA447008840A0 /* CustomMacroHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomMacroHandler.h; sourceTree = SOURCE_ROOT; };
|
||||
47CD7CEC17BAA447008840A0 /* CustomMacroHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomMacroHandler.m; sourceTree = SOURCE_ROOT; };
|
||||
47CD7CF017BACB30008840A0 /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; };
|
||||
47EC964F17A19FC900D685C9 /* TAGDataLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TAGDataLayer.h; sourceTree = "<group>"; };
|
||||
47EC965017A19FDD00D685C9 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = SOURCE_ROOT; };
|
||||
47EC965117A19FDD00D685C9 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utils.m; sourceTree = SOURCE_ROOT; };
|
||||
47EC965317A1C9EB00D685C9 /* GTM-XXXX */ = {isa = PBXFileReference; lastKnownFileType = file; path = "GTM-XXXX"; sourceTree = SOURCE_ROOT; };
|
||||
47EC965917A1CCDE00D685C9 /* Container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Container.png; path = Images/Container.png; sourceTree = SOURCE_ROOT; };
|
||||
88679A8B17A1841C00F476D5 /* libGoogleAnalyticsServices.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libGoogleAnalyticsServices.a; path = ../../libGoogleAnalyticsServices.a; sourceTree = "<group>"; };
|
||||
F41DE61E171DB8A500960CB7 /* TAGContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TAGContainer.h; sourceTree = "<group>"; };
|
||||
F41DE620171DB8A500960CB7 /* TAGManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TAGManager.h; sourceTree = "<group>"; };
|
||||
F431344E174E8F96003C1079 /* TAGContainerOpener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TAGContainerOpener.h; sourceTree = "<group>"; };
|
||||
F431344F174E8F96003C1079 /* TAGLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TAGLogger.h; sourceTree = "<group>"; };
|
||||
F4FE3F5517555573000A691A /* GTM-XXXX.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GTM-XXXX.plist"; sourceTree = SOURCE_ROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
113B6EE0153E1F0B003CAC38 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
47CD7CF117BACB30008840A0 /* AdSupport.framework in Frameworks */,
|
||||
115686561593CE6A00A5D031 /* SystemConfiguration.framework in Frameworks */,
|
||||
113B6F2B153E208D003CAC38 /* CoreData.framework in Frameworks */,
|
||||
113B6EE8153E1F0B003CAC38 /* UIKit.framework in Frameworks */,
|
||||
113B6EEA153E1F0B003CAC38 /* Foundation.framework in Frameworks */,
|
||||
88679A8C17A1841C00F476D5 /* libGoogleAnalyticsServices.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
113B6ED8153E1F0B003CAC38 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
113B6EED153E1F0B003CAC38 /* CuteAnimals */,
|
||||
F41DE61B171DB8A500960CB7 /* TagManager SDK */,
|
||||
113B6EE6153E1F0B003CAC38 /* Frameworks */,
|
||||
113B6EE4153E1F0B003CAC38 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6EE4153E1F0B003CAC38 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
113B6EE3153E1F0B003CAC38 /* CuteAnimals.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6EE6153E1F0B003CAC38 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
47CD7CF017BACB30008840A0 /* AdSupport.framework */,
|
||||
115686551593CE6A00A5D031 /* SystemConfiguration.framework */,
|
||||
113B6F2A153E208D003CAC38 /* CoreData.framework */,
|
||||
113B6EE7153E1F0B003CAC38 /* UIKit.framework */,
|
||||
113B6EE9153E1F0B003CAC38 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6EED153E1F0B003CAC38 /* CuteAnimals */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
113B6F02153E1F99003CAC38 /* AppDelegate.h */,
|
||||
113B6F03153E1F99003CAC38 /* AppDelegate.m */,
|
||||
11FCCC1B1561834700949704 /* CategoryViewController.h */,
|
||||
11FCCC1C1561834700949704 /* CategoryViewController.m */,
|
||||
113B6F0A153E1F99003CAC38 /* CategoryViewController_iPad.xib */,
|
||||
113B6F0B153E1F99003CAC38 /* CategoryViewController_iPhone.xib */,
|
||||
47CD7CEB17BAA447008840A0 /* CustomMacroHandler.h */,
|
||||
47CD7CEC17BAA447008840A0 /* CustomMacroHandler.m */,
|
||||
47CD7CE517BAA2B1008840A0 /* CustomTagHandler.h */,
|
||||
47CD7CE617BAA2B1008840A0 /* CustomTagHandler.m */,
|
||||
11FCCC1D1561834700949704 /* ImageViewController.h */,
|
||||
11FCCC1E1561834700949704 /* ImageViewController.m */,
|
||||
113B6F04153E1F99003CAC38 /* main.m */,
|
||||
113B6F05153E1F99003CAC38 /* NavController.h */,
|
||||
113B6F06153E1F99003CAC38 /* NavController.m */,
|
||||
113B6F07153E1F99003CAC38 /* RootViewController.h */,
|
||||
113B6F08153E1F99003CAC38 /* RootViewController.m */,
|
||||
113B6F09153E1F99003CAC38 /* RootViewController.xib */,
|
||||
113B6EEE153E1F0B003CAC38 /* Supporting Files */,
|
||||
47EC965017A19FDD00D685C9 /* Utils.h */,
|
||||
47EC965117A19FDD00D685C9 /* Utils.m */,
|
||||
);
|
||||
name = CuteAnimals;
|
||||
path = .;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
113B6EEE153E1F0B003CAC38 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
11FCCC211561899800949704 /* Images */,
|
||||
113B6EEF153E1F0B003CAC38 /* CuteAnimals-Info.plist */,
|
||||
113B6EF5153E1F0B003CAC38 /* CuteAnimals-Prefix.pch */,
|
||||
47EC965317A1C9EB00D685C9 /* GTM-XXXX */,
|
||||
F4FE3F5517555573000A691A /* GTM-XXXX.plist */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
11FCCC211561899800949704 /* Images */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
47EC965917A1CCDE00D685C9 /* Container.png */,
|
||||
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>";
|
||||
};
|
||||
F41DE61B171DB8A500960CB7 /* TagManager SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
88679A8B17A1841C00F476D5 /* libGoogleAnalyticsServices.a */,
|
||||
47EC964F17A19FC900D685C9 /* TAGDataLayer.h */,
|
||||
F41DE61E171DB8A500960CB7 /* TAGContainer.h */,
|
||||
F431344E174E8F96003C1079 /* TAGContainerOpener.h */,
|
||||
F431344F174E8F96003C1079 /* TAGLogger.h */,
|
||||
F41DE620171DB8A500960CB7 /* TAGManager.h */,
|
||||
);
|
||||
name = "TagManager SDK";
|
||||
path = ../../Library;
|
||||
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 = 0460;
|
||||
};
|
||||
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 */,
|
||||
F4FE3F5617555573000A691A /* GTM-XXXX.plist in Resources */,
|
||||
47EC965417A1C9EB00D685C9 /* GTM-XXXX in Resources */,
|
||||
47EC965A17A1CCDE00D685C9 /* Container.png 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 */,
|
||||
47EC965217A19FDD00D685C9 /* Utils.m in Sources */,
|
||||
47CD7CE717BAA2B1008840A0 /* CustomTagHandler.m in Sources */,
|
||||
47CD7CED17BAA447008840A0 /* CustomMacroHandler.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)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"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)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"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\"",
|
||||
"\"$(SRCROOT)/../../..\"",
|
||||
);
|
||||
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\"",
|
||||
"\"$(SRCROOT)/../../..\"",
|
||||
);
|
||||
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 */;
|
||||
}
|
|
@ -1,10 +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>Adjective</key>
|
||||
<string>Cute</string>
|
||||
<key>Title</key>
|
||||
<string>Cute Animals</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1,22 +0,0 @@
|
|||
//
|
||||
// ImageViewController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "NavController.h"
|
||||
|
||||
@interface ImageViewController : UIViewController
|
||||
|
||||
@property(nonatomic, retain) NavController *navController;
|
||||
@property(nonatomic, retain) UIImageView *imageView;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil
|
||||
bundle:(NSBundle *)nibBundleOrNil
|
||||
title:(NSString *)title
|
||||
image:(UIImage *)image;
|
||||
|
||||
@end
|
|
@ -1,71 +0,0 @@
|
|||
//
|
||||
// ImageViewController.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
#endif
|
||||
|
||||
#import "ImageViewController.h"
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "TAGDataLayer.h"
|
||||
#import "TAGManager.h"
|
||||
#import "Utils.h"
|
||||
|
||||
@interface ImageViewController ()
|
||||
|
||||
@property(nonatomic, assign) AppDelegate *delegate;
|
||||
|
||||
@end
|
||||
|
||||
@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 = title;
|
||||
self.imageView = [[UIImageView alloc] initWithImage:image];
|
||||
self.imageView.userInteractionEnabled = YES;
|
||||
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
// Override
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Put the image_name into the data layer for future use.
|
||||
[self.delegate.tagManager.dataLayer pushValue:self.title
|
||||
forKey:@"category_name"];
|
||||
}
|
||||
|
||||
// Override
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
[Utils pushOpenScreenEventWithScreenName:@"ImageViewScreen"];
|
||||
}
|
||||
|
||||
// Override
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewDidDisappear:animated];
|
||||
[Utils pushCloseScreenEventWithScreenName:@"ImageViewScreen"];
|
||||
}
|
||||
|
||||
// Override
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:
|
||||
(UIInterfaceOrientation)interfaceOrientation {
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
Before Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 144 KiB |
Before Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 78 KiB |
|
@ -1,13 +0,0 @@
|
|||
//
|
||||
// NavController.h
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface NavController :
|
||||
UINavigationController<UINavigationControllerDelegate>
|
||||
|
||||
@end
|
|
@ -1,35 +0,0 @@
|
|||
//
|
||||
// NavController.m
|
||||
// CuteAnimals
|
||||
//
|
||||
// Copyright 2013 Google, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||||
#error "This file requires ARC support."
|
||||
#endif
|
||||
|
||||
#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
|