├── Example ├── en.lproj │ ├── InfoPlist.strings │ └── MainWindow.xib ├── Example-Prefix.pch ├── View Controllers │ ├── RootViewController.h │ ├── PhotoListViewController.h │ ├── PhotoViewController.h │ ├── AlbumListViewController.h │ ├── PhotoViewController.m │ ├── RootViewController.m │ ├── PhotoListViewController.m │ ├── AlbumListViewController.m │ ├── PhotoViewController.xib │ ├── PhotoListViewController.xib │ ├── RootViewController.xib │ └── AlbumListViewController.xib ├── main.m ├── ExampleAppDelegate.h ├── Example-Info.plist └── ExampleAppDelegate.m ├── GowallaExample └── GowallaExample │ ├── en.lproj │ ├── InfoPlist.strings │ └── MainWindow.xib │ ├── images │ └── empty_50.png │ ├── View Controllers │ ├── SpotsTableViewController.h │ ├── CheckinsTableViewController.h │ ├── SpotViewController.h │ ├── CheckinsTableViewController.m │ ├── SpotViewController.m │ ├── SpotsTableViewController.m │ └── SpotViewController.xib │ ├── main.m │ ├── GowallaExample-Prefix.pch │ ├── GowallaExampleAppDelegate.h │ ├── GowallaExample-Info.plist │ ├── AFGowallaAPIClient.h │ ├── AFGowallaAPIClient.m │ └── GowallaExampleAppDelegate.m ├── MappingExample ├── MappingExample │ ├── en.lproj │ │ ├── InfoPlist.strings │ │ └── RootViewController.xib │ ├── RootViewController.h │ ├── main.m │ ├── MappingExample-Prefix.pch │ ├── MappingExampleAppDelegate.h │ ├── MapViewController.h │ ├── MappingExample-Info.plist │ ├── MapViewController.m │ ├── RootViewController.m │ ├── MappingExampleAppDelegate.m │ └── MapViewController.xib └── MappingExample.xcodeproj │ └── project.pbxproj ├── .gitignore ├── .gitmodules ├── LICENSE ├── ABRouter ├── ABRouter.h └── ABRouter.m ├── README.markdown └── Example.xcodeproj └── project.pbxproj /Example/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/images/empty_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronbrethorst/ABRouter/HEAD/GowallaExample/GowallaExample/images/empty_50.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | .DS_Store 3 | build/* 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | *.xcworkspace 13 | !default.xcworkspace 14 | xcuserdata 15 | profile 16 | *.moved-aside 17 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/RootViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RootViewController.h 3 | // MappingExample 4 | // 5 | // Created by Aaron Brethorst on 9/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RootViewController : UITableViewController 12 | { 13 | NSMutableArray *tableItems; 14 | } 15 | @end 16 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "SOCKit"] 2 | path = SOCKit 3 | url = git://github.com/jverkoey/sockit.git 4 | [submodule "GowallaExample/Libraries/AFNetworking"] 5 | path = GowallaExample/Libraries/AFNetworking 6 | url = git://github.com/gowalla/AFNetworking.git 7 | [submodule "GowallaExample/Libraries/JSONKit"] 8 | path = GowallaExample/Libraries/JSONKit 9 | url = git://github.com/johnezang/JSONKit.git 10 | -------------------------------------------------------------------------------- /Example/Example-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'Example' target in the 'Example' project 3 | // 4 | 5 | #import 6 | 7 | #ifndef __IPHONE_3_0 8 | #warning "This project uses features only available in iPhone SDK 3.0 and later." 9 | #endif 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif 15 | 16 | #import "ABRouter.h" -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/View Controllers/SpotsTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SpotsTableViewController.h 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SpotsTableViewController : UITableViewController 12 | @property(nonatomic,retain) NSMutableArray *tableData; 13 | @end 14 | -------------------------------------------------------------------------------- /Example/View Controllers/RootViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RootViewController.h 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RootViewController : UIViewController 12 | - (IBAction)viewAlbums:(id)sender; 13 | - (IBAction)viewPhotos:(id)sender; 14 | - (IBAction)modal:(id)sender; 15 | @end 16 | -------------------------------------------------------------------------------- /Example/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 14 | int retVal = UIApplicationMain(argc, argv, nil, nil); 15 | [pool release]; 16 | return retVal; 17 | } 18 | -------------------------------------------------------------------------------- /Example/View Controllers/PhotoListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PhotoListViewController.h 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PhotoListViewController : UIViewController 12 | @property(nonatomic,retain) IBOutlet UILabel *pathLabel; 13 | - (IBAction)showPhoto:(id)sender; 14 | @end 15 | -------------------------------------------------------------------------------- /Example/View Controllers/PhotoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PhotoViewController.h 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PhotoViewController : UIViewController 12 | @property(nonatomic,retain) NSString *apiPath; 13 | @property(nonatomic,retain) IBOutlet UILabel *pathLabel; 14 | @end 15 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 14 | int retVal = UIApplicationMain(argc, argv, nil, nil); 15 | [pool release]; 16 | return retVal; 17 | } 18 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // MappingExample 4 | // 5 | // Created by Aaron Brethorst on 9/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 14 | int retVal = UIApplicationMain(argc, argv, nil, nil); 15 | [pool release]; 16 | return retVal; 17 | } 18 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/MappingExample-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'MappingExample' target in the 'MappingExample' project 3 | // 4 | 5 | #import 6 | 7 | #ifndef __IPHONE_3_0 8 | #warning "This project uses features only available in iPhone SDK 3.0 and later." 9 | #endif 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif 15 | 16 | #import "ABRouter.h" -------------------------------------------------------------------------------- /Example/View Controllers/AlbumListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AlbumListViewController.h 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AlbumListViewController : UIViewController 12 | @property(nonatomic,retain) NSString *apiPath; 13 | @property(nonatomic,retain) IBOutlet UILabel *pathLabel; 14 | - (IBAction)showAlbum:(id)sender; 15 | @end 16 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/View Controllers/CheckinsTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // CheckinsTableViewController.h 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CheckinsTableViewController : UITableViewController 12 | @property(nonatomic,retain) NSMutableArray *tableData; 13 | @property(nonatomic,retain) NSString *apiPath; 14 | @end 15 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/GowallaExample-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'GowallaExample' target in the 'GowallaExample' project 3 | // 4 | 5 | #import 6 | 7 | #ifndef __IPHONE_3_0 8 | #warning "This project uses features only available in iPhone SDK 3.0 and later." 9 | #endif 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif 15 | 16 | #import "ABRouter.h" 17 | #import "AFGowallaAPIClient.h" -------------------------------------------------------------------------------- /MappingExample/MappingExample/MappingExampleAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // MappingExampleAppDelegate.h 3 | // MappingExample 4 | // 5 | // Created by Aaron Brethorst on 9/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MappingExampleAppDelegate : NSObject 12 | 13 | @property (nonatomic, retain) IBOutlet UIWindow *window; 14 | 15 | @property (nonatomic, retain) IBOutlet UINavigationController *navigationController; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/MapViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MapViewController.h 3 | // MappingExample 4 | // 5 | // Created by Aaron Brethorst on 9/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface MapViewController : UIViewController 13 | @property(nonatomic,retain) IBOutlet MKMapView *mapView; 14 | @property(nonatomic,retain) NSString *apiPath; 15 | @property(nonatomic,retain) NSDictionary *parameters; 16 | @end 17 | -------------------------------------------------------------------------------- /Example/ExampleAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleAppDelegate.h 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class RootViewController; 12 | 13 | @interface ExampleAppDelegate : NSObject 14 | @property(nonatomic,retain) IBOutlet UIWindow *window; 15 | @property(nonatomic,retain) RootViewController *rootViewController; 16 | @property(nonatomic,retain) UINavigationController *navigationController; 17 | @end 18 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/GowallaExampleAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // GowallaExampleAppDelegate.h 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class SpotsTableViewController; 12 | 13 | @interface GowallaExampleAppDelegate : NSObject 14 | @property(nonatomic,retain) SpotsTableViewController *spotsTableViewController; 15 | @property(nonatomic,retain) UINavigationController *navigationController; 16 | @property (nonatomic, retain) IBOutlet UIWindow *window; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Example/View Controllers/PhotoViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // PhotoViewController.m 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "PhotoViewController.h" 10 | 11 | @implementation PhotoViewController 12 | @synthesize apiPath; 13 | @synthesize pathLabel; 14 | 15 | - (id)init 16 | { 17 | self = [super initWithNibName:@"PhotoViewController" bundle:nil]; 18 | if (self) 19 | { 20 | self.title = NSStringFromClass([self class]); 21 | } 22 | return self; 23 | } 24 | 25 | #pragma mark - View lifecycle 26 | 27 | - (void)viewDidLoad 28 | { 29 | [super viewDidLoad]; 30 | self.pathLabel.text = [NSString stringWithFormat:@"Welcome to %@", self.apiPath]; 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/View Controllers/SpotViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SpotViewController.h 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/5/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SpotViewController : UIViewController 12 | @property(nonatomic,retain) NSMutableArray *photoURLs; 13 | @property(nonatomic,retain) IBOutlet UIImageView *categoryImage; 14 | @property(nonatomic,retain) IBOutlet UILabel *businessName; 15 | @property(nonatomic,retain) IBOutlet UIImageView *photoOne; 16 | @property(nonatomic,retain) IBOutlet UIImageView *photoTwo; 17 | @property(nonatomic,retain) IBOutlet UIImageView *photoThree; 18 | @property(nonatomic,retain) IBOutlet UIImageView *photoFour; 19 | @property(nonatomic,retain) IBOutlet UIImageView *photoFive; 20 | @property(nonatomic,retain) NSString *apiPath; 21 | @property(nonatomic,retain) NSDictionary *spot; 22 | - (IBAction)viewCheckins:(id)sender; 23 | @end 24 | -------------------------------------------------------------------------------- /Example/View Controllers/RootViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // RootViewController.m 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "RootViewController.h" 10 | 11 | @implementation RootViewController 12 | 13 | - (id)init 14 | { 15 | self = [super initWithNibName:@"RootViewController" bundle:nil]; 16 | if (self) 17 | { 18 | self.title = NSStringFromClass([self class]); 19 | } 20 | return self; 21 | } 22 | 23 | #pragma mark - IBActions 24 | 25 | - (IBAction)viewAlbums:(id)sender 26 | { 27 | [[ABRouter sharedRouter] navigateTo:@"/albums" withNavigationController:self.navigationController]; 28 | } 29 | 30 | - (IBAction)viewPhotos:(id)sender 31 | { 32 | [[ABRouter sharedRouter] navigateTo:@"/photos" withNavigationController:self.navigationController]; 33 | } 34 | 35 | - (IBAction)modal:(id)sender 36 | { 37 | [[ABRouter sharedRouter] modallyPresent:@"/photos" from:self]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Example/View Controllers/PhotoListViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // PhotoListViewController.m 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "PhotoListViewController.h" 10 | 11 | @implementation PhotoListViewController 12 | @synthesize apiPath; 13 | @synthesize pathLabel; 14 | 15 | - (id)init 16 | { 17 | self = [super initWithNibName:@"PhotoListViewController" bundle:nil]; 18 | if (self) 19 | { 20 | self.title = NSStringFromClass([self class]); 21 | } 22 | return self; 23 | } 24 | 25 | #pragma mark - View lifecycle 26 | 27 | - (void)viewDidLoad 28 | { 29 | [super viewDidLoad]; 30 | 31 | self.pathLabel.text = [NSString stringWithFormat:@"Welcome to %@", self.apiPath]; 32 | } 33 | 34 | - (IBAction)showPhoto:(id)sender 35 | { 36 | [[ABRouter sharedRouter] navigateTo:[NSString stringWithFormat:@"/photos/%d", [sender tag]] withNavigationController:self.navigationController]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Example/View Controllers/AlbumListViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // AlbumListViewController.m 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "AlbumListViewController.h" 10 | 11 | @implementation AlbumListViewController 12 | @synthesize apiPath; 13 | @synthesize pathLabel; 14 | 15 | - (id)init 16 | { 17 | self = [super initWithNibName:@"AlbumListViewController" bundle:nil]; 18 | if (self) 19 | { 20 | self.title = NSStringFromClass([self class]); 21 | } 22 | return self; 23 | } 24 | 25 | #pragma mark - View lifecycle 26 | 27 | - (void)viewDidLoad 28 | { 29 | [super viewDidLoad]; 30 | 31 | self.pathLabel.text = [NSString stringWithFormat:@"Welcome to %@", self.apiPath]; 32 | } 33 | 34 | #pragma mark - IBActions 35 | 36 | - (IBAction)showAlbum:(id)sender 37 | { 38 | int tag = [sender tag]; 39 | 40 | [[ABRouter sharedRouter] navigateTo:[NSString stringWithFormat:@"/albums/%d", tag] withNavigationController:self.navigationController]; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Aaron Brethorst 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a 4 | copy of this software and associated documentation files (the "Software"), 5 | to deal in the Software without restriction, including without limitation 6 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | and/or sell copies of the Software, and to permit persons to whom the 8 | Software is furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Example/Example-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | com.structlab.${PRODUCT_NAME:rfc1034identifier} 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 1.0 27 | LSRequiresIPhoneOS 28 | 29 | NSMainNibFile 30 | MainWindow 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/GowallaExample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | com.structlab.${PRODUCT_NAME:rfc1034identifier} 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 1.0 27 | LSRequiresIPhoneOS 28 | 29 | NSMainNibFile 30 | MainWindow 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/MappingExample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | com.structlab.${PRODUCT_NAME:rfc1034identifier} 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 1.0 27 | LSRequiresIPhoneOS 28 | 29 | NSMainNibFile 30 | MainWindow 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/AFGowallaAPIClient.h: -------------------------------------------------------------------------------- 1 | // AFGowallaAPI.h 2 | // 3 | // Copyright (c) 2011 Gowalla (http://gowalla.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | #import "AFRestClient.h" 25 | 26 | extern NSString * const kAFGowallaClientID; 27 | extern NSString * const kAFGowallaBaseURLString; 28 | 29 | @interface AFGowallaAPIClient : AFRestClient 30 | + (id)sharedClient; 31 | @end 32 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/MapViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MapViewController.m 3 | // MappingExample 4 | // 5 | // Created by Aaron Brethorst on 9/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "MapViewController.h" 10 | 11 | @implementation MapViewController 12 | @synthesize apiPath, parameters, mapView; 13 | 14 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 15 | { 16 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 17 | if (self) 18 | { 19 | // Custom initialization 20 | } 21 | return self; 22 | } 23 | 24 | - (void)didReceiveMemoryWarning 25 | { 26 | // Releases the view if it doesn't have a superview. 27 | [super didReceiveMemoryWarning]; 28 | 29 | // Release any cached data, images, etc that aren't in use. 30 | } 31 | 32 | #pragma mark - View lifecycle 33 | 34 | - (void)viewDidLoad 35 | { 36 | [super viewDidLoad]; 37 | 38 | self.title = [self.parameters objectForKey:@"name"]; 39 | 40 | MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake([[self.parameters objectForKey:@"lat"] floatValue], [[self.parameters objectForKey:@"lng"] floatValue]) addressDictionary:[NSDictionary dictionary]]; 41 | [self.mapView addAnnotation:placemark]; 42 | [self.mapView setRegion:MKCoordinateRegionMake(placemark.coordinate, MKCoordinateSpanMake(0.2, 0.2)) animated:YES]; 43 | [placemark release]; 44 | } 45 | 46 | - (void)viewDidUnload 47 | { 48 | [super viewDidUnload]; 49 | // Release any retained subviews of the main view. 50 | // e.g. self.myOutlet = nil; 51 | } 52 | 53 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 54 | { 55 | // Return YES for supported orientations 56 | return (interfaceOrientation == UIInterfaceOrientationPortrait); 57 | } 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /ABRouter/ABRouter.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 Aaron Brethorst 2 | 3 | // Permission is hereby granted, free of charge, to any person obtaining a 4 | // copy of this software and associated documentation files (the "Software"), 5 | // to deal in the Software without restriction, including without limitation 6 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | // and/or sell copies of the Software, and to permit persons to whom the 8 | // Software is furnished to do so, subject to the following conditions: 9 | 10 | // The above copyright notice and this permission notice shall be included in 11 | // all copies or substantial portions of the Software. 12 | 13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19 | // DEALINGS IN THE SOFTWARE. 20 | 21 | #import 22 | 23 | @protocol Routable 24 | @property(nonatomic,retain) NSString *apiPath; 25 | 26 | @optional 27 | @property(nonatomic,retain) NSDictionary *parameters; 28 | @property(nonatomic,retain) id entity; 29 | @end 30 | 31 | @interface ABRouter : NSObject 32 | { 33 | NSMutableArray *routePatterns; 34 | } 35 | + (ABRouter*)sharedRouter; 36 | - (void)match:(NSString*)pattern to:(Class)aClass; 37 | - (void)display:(id)obj withNavigationController:(UINavigationController*)navController; 38 | - (void)navigateTo:(NSString*)route withNavigationController:(UINavigationController*)navController; 39 | - (void)modallyPresent:(NSString*)route from:(UIViewController*)viewController; 40 | - (UIViewController *)match:(NSString*)route; 41 | @end -------------------------------------------------------------------------------- /MappingExample/MappingExample/RootViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // RootViewController.m 3 | // MappingExample 4 | // 5 | // Created by Aaron Brethorst on 9/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "RootViewController.h" 10 | 11 | @implementation RootViewController 12 | 13 | - (void)viewDidLoad 14 | { 15 | [super viewDidLoad]; 16 | 17 | self.title = @"Mapping Example"; 18 | 19 | tableItems = [[NSMutableArray alloc] init]; 20 | [tableItems addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"/map?lat=37.331676&lng=-122.030243&name=Apple", @"path", @"Apple", @"name", nil]]; 21 | [tableItems addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"/map?lat=37.423097&lng=-122.082642&name=Google", @"path", @"Google", @"name", nil]]; 22 | [tableItems addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"/map?lat=47.673132&lng=-122.118487&name=Microsoft", @"path", @"Microsoft", @"name", nil]]; 23 | } 24 | 25 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 26 | { 27 | return [tableItems count]; 28 | } 29 | 30 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 31 | { 32 | static NSString *CellIdentifier = @"Cell"; 33 | 34 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 35 | if (cell == nil) { 36 | cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 37 | } 38 | 39 | cell.textLabel.text = [[tableItems objectAtIndex:indexPath.row] objectForKey:@"name"]; 40 | 41 | return cell; 42 | } 43 | 44 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 45 | { 46 | [[ABRouter sharedRouter] navigateTo:[[tableItems objectAtIndex:indexPath.row] objectForKey:@"path"] withNavigationController:self.navigationController]; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Example/ExampleAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleAppDelegate.m 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "ExampleAppDelegate.h" 10 | #import "RootViewController.h" 11 | #import "PhotoListViewController.h" 12 | #import "PhotoViewController.h" 13 | #import "AlbumListViewController.h" 14 | #import "PhotoListViewController.h" 15 | 16 | @implementation ExampleAppDelegate 17 | 18 | @synthesize window = _window; 19 | @synthesize rootViewController, navigationController; 20 | 21 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 22 | { 23 | [[ABRouter sharedRouter] match:@"/photos" to:[PhotoListViewController class]]; 24 | [[ABRouter sharedRouter] match:@"/photos/:id" to:[PhotoViewController class]]; 25 | [[ABRouter sharedRouter] match:@"/albums" to:[AlbumListViewController class]]; 26 | [[ABRouter sharedRouter] match:@"/albums/:id" to:[PhotoListViewController class]]; 27 | 28 | self.rootViewController = [[[RootViewController alloc] init] autorelease]; 29 | self.navigationController = [[[UINavigationController alloc] initWithRootViewController:self.rootViewController] autorelease]; 30 | [self.window addSubview:self.navigationController.view]; 31 | [self.window makeKeyAndVisible]; 32 | return YES; 33 | } 34 | 35 | - (void)applicationWillResignActive:(UIApplication *)application 36 | { 37 | } 38 | 39 | - (void)applicationDidEnterBackground:(UIApplication *)application 40 | { 41 | } 42 | 43 | - (void)applicationWillEnterForeground:(UIApplication *)application 44 | { 45 | } 46 | 47 | - (void)applicationDidBecomeActive:(UIApplication *)application 48 | { 49 | } 50 | 51 | - (void)applicationWillTerminate:(UIApplication *)application 52 | { 53 | } 54 | 55 | - (void)dealloc 56 | { 57 | self.rootViewController = nil; 58 | self.navigationController = nil; 59 | 60 | [_window release]; 61 | [super dealloc]; 62 | } 63 | 64 | @end 65 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/AFGowallaAPIClient.m: -------------------------------------------------------------------------------- 1 | // AFGowallaAPI.m 2 | // 3 | // Copyright (c) 2011 Gowalla (http://gowalla.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import "AFGowallaAPIClient.h" 24 | 25 | static AFGowallaAPIClient *_sharedClient = nil; 26 | 27 | // Replace this with your own API Key, available at http://api.gowalla.com/api/keys/ 28 | NSString * const kAFGowallaClientID = @"fa574894bddc43aa96c556eb457b4009"; 29 | 30 | NSString * const kAFGowallaBaseURLString = @"https://api.gowalla.com/"; 31 | 32 | @implementation AFGowallaAPIClient 33 | 34 | + (id)sharedClient { 35 | if (_sharedClient == nil) { 36 | @synchronized(self) { 37 | _sharedClient = [[self alloc] init]; 38 | } 39 | } 40 | 41 | return _sharedClient; 42 | } 43 | 44 | - (id)init { 45 | self = [super init]; 46 | if (!self) { 47 | return nil; 48 | } 49 | 50 | // X-Gowalla-API-Key HTTP Header; see http://api.gowalla.com/api/docs 51 | [self setDefaultHeader:@"X-Gowalla-API-Key" value:kAFGowallaClientID]; 52 | 53 | // X-Gowalla-API-Version HTTP Header; see http://api.gowalla.com/api/docs 54 | [self setDefaultHeader:@"X-Gowalla-API-Version" value:@"1"]; 55 | 56 | // X-UDID HTTP Header 57 | [self setDefaultHeader:@"X-UDID" value:[[UIDevice currentDevice] uniqueIdentifier]]; 58 | 59 | return self; 60 | } 61 | 62 | + (NSURL *)baseURL { 63 | return [NSURL URLWithString:kAFGowallaBaseURLString]; 64 | } 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/MappingExampleAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // MappingExampleAppDelegate.m 3 | // MappingExample 4 | // 5 | // Created by Aaron Brethorst on 9/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "MappingExampleAppDelegate.h" 10 | #import "MapViewController.h" 11 | 12 | @implementation MappingExampleAppDelegate 13 | 14 | @synthesize window = _window; 15 | @synthesize navigationController = _navigationController; 16 | 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 18 | { 19 | [[ABRouter sharedRouter] match:@"/map?lat=:lat&lng=:lng&name=:name" to:[MapViewController class]]; 20 | self.window.rootViewController = self.navigationController; 21 | [self.window makeKeyAndVisible]; 22 | return YES; 23 | } 24 | 25 | - (void)applicationWillResignActive:(UIApplication *)application 26 | { 27 | /* 28 | Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 29 | Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 30 | */ 31 | } 32 | 33 | - (void)applicationDidEnterBackground:(UIApplication *)application 34 | { 35 | /* 36 | Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 37 | If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 38 | */ 39 | } 40 | 41 | - (void)applicationWillEnterForeground:(UIApplication *)application 42 | { 43 | /* 44 | Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 45 | */ 46 | } 47 | 48 | - (void)applicationDidBecomeActive:(UIApplication *)application 49 | { 50 | /* 51 | Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 52 | */ 53 | } 54 | 55 | - (void)applicationWillTerminate:(UIApplication *)application 56 | { 57 | /* 58 | Called when the application is about to terminate. 59 | Save data if appropriate. 60 | See also applicationDidEnterBackground:. 61 | */ 62 | } 63 | 64 | - (void)dealloc 65 | { 66 | [_window release]; 67 | [_navigationController release]; 68 | [super dealloc]; 69 | } 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/View Controllers/CheckinsTableViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // CheckinsTableViewController.m 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "CheckinsTableViewController.h" 10 | 11 | @implementation CheckinsTableViewController 12 | @synthesize tableData; 13 | @synthesize apiPath; 14 | 15 | - (id)initWithStyle:(UITableViewStyle)style 16 | { 17 | self = [super initWithStyle:style]; 18 | if (self) 19 | { 20 | self.title = @"Checkins"; 21 | } 22 | return self; 23 | } 24 | 25 | - (void)dealloc 26 | { 27 | self.apiPath = nil; 28 | [super dealloc]; 29 | } 30 | 31 | #pragma mark - View lifecycle 32 | 33 | - (void)viewDidLoad 34 | { 35 | [super viewDidLoad]; 36 | 37 | self.tableData = [[[NSMutableArray alloc] init] autorelease]; 38 | 39 | [[AFGowallaAPIClient sharedClient] getPath:self.apiPath parameters:nil success:^(id response) { 40 | 41 | [self.tableData removeAllObjects]; 42 | [self.tableData addObjectsFromArray:[response objectForKey:@"activity"]]; 43 | [self.tableView reloadData]; 44 | }]; 45 | } 46 | 47 | - (void)viewDidUnload 48 | { 49 | [super viewDidUnload]; 50 | self.tableData = nil; 51 | } 52 | 53 | #pragma mark - Table view data source 54 | 55 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 56 | { 57 | return [self.tableData count]; 58 | } 59 | 60 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 61 | { 62 | static NSString *CellIdentifier = @"Cell"; 63 | 64 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 65 | if (cell == nil) { 66 | cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 67 | } 68 | 69 | NSDictionary *activity = [self.tableData objectAtIndex:indexPath.row]; 70 | 71 | NSString *activityType = [activity objectForKey:@"type"]; 72 | NSString *activityUser = [[activity objectForKey:@"user"] objectForKey:@"first_name"]; 73 | 74 | cell.textLabel.text = [NSString stringWithFormat:@"%@ by %@", activityType, activityUser]; 75 | 76 | return cell; 77 | } 78 | 79 | #pragma mark - Table view delegate 80 | 81 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 82 | { 83 | // Navigation logic may go here. Create and push another view controller. 84 | /* 85 | <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil]; 86 | // ... 87 | // Pass the selected object to the new view controller. 88 | [self.navigationController pushViewController:detailViewController animated:YES]; 89 | [detailViewController release]; 90 | */ 91 | } 92 | 93 | @end 94 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/View Controllers/SpotViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SpotViewController.m 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/5/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "SpotViewController.h" 10 | #import "UIImageView+AFNetworking.h" 11 | 12 | @implementation SpotViewController 13 | @synthesize categoryImage, businessName; 14 | @synthesize photoOne, photoTwo, photoThree, photoFour, photoFive; 15 | @synthesize photoURLs; 16 | @synthesize apiPath; 17 | @synthesize spot; 18 | 19 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 20 | { 21 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 22 | if (self) { 23 | // Custom initialization 24 | } 25 | return self; 26 | } 27 | 28 | - (void)didReceiveMemoryWarning 29 | { 30 | // Releases the view if it doesn't have a superview. 31 | [super didReceiveMemoryWarning]; 32 | 33 | // Release any cached data, images, etc that aren't in use. 34 | } 35 | 36 | #pragma mark - View lifecycle 37 | 38 | - (void)viewDidLoad 39 | { 40 | [super viewDidLoad]; 41 | 42 | self.photoURLs = [NSMutableArray array]; 43 | 44 | [[AFGowallaAPIClient sharedClient] getPath:self.apiPath parameters:nil success:^(id response) { 45 | self.spot = response; 46 | self.businessName.text = [response objectForKey:@"name"]; 47 | [self.categoryImage setImageWithURL:[NSURL URLWithString:[response objectForKey:@"image_url"]]]; 48 | 49 | [[AFGowallaAPIClient sharedClient] getPath:[response objectForKey:@"photos_url"] parameters:nil success:^(id response) { 50 | 51 | for (NSDictionary *p in [response objectForKey:@"activity"]) 52 | { 53 | NSString *url = [[p objectForKey:@"photo_urls"] objectForKey:@"square_50"]; 54 | [self.photoURLs addObject:[NSURL URLWithString:url]]; 55 | } 56 | 57 | if ([self.photoURLs count] > 0) 58 | { 59 | [self.photoOne setImageWithURL:[self.photoURLs objectAtIndex:0]]; 60 | } 61 | 62 | if ([self.photoURLs count] > 1) 63 | { 64 | [self.photoOne setImageWithURL:[self.photoURLs objectAtIndex:1]]; 65 | } 66 | 67 | if ([self.photoURLs count] > 2) 68 | { 69 | [self.photoOne setImageWithURL:[self.photoURLs objectAtIndex:2]]; 70 | } 71 | 72 | if ([self.photoURLs count] > 3) 73 | { 74 | [self.photoOne setImageWithURL:[self.photoURLs objectAtIndex:3]]; 75 | } 76 | 77 | if ([self.photoURLs count] > 4) 78 | { 79 | [self.photoOne setImageWithURL:[self.photoURLs objectAtIndex:4]]; 80 | } 81 | }]; 82 | }]; 83 | } 84 | 85 | #pragma mark - IBActions 86 | 87 | - (IBAction)viewCheckins:(id)sender 88 | { 89 | [[ABRouter sharedRouter] navigateTo:[self.spot objectForKey:@"activity_url"] 90 | withNavigationController:self.navigationController]; 91 | } 92 | 93 | @end 94 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/GowallaExampleAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // GowallaExampleAppDelegate.m 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "GowallaExampleAppDelegate.h" 10 | #import "SpotViewController.h" 11 | #import "SpotsTableViewController.h" 12 | #import "CheckinsTableViewController.h" 13 | 14 | @implementation GowallaExampleAppDelegate 15 | 16 | @synthesize window = _window; 17 | @synthesize spotsTableViewController, navigationController; 18 | 19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 20 | { 21 | [[ABRouter sharedRouter] match:@"/spots/:spot_id" to:[SpotViewController class]]; 22 | [[ABRouter sharedRouter] match:@"/spots/:spot_id/events" to:[CheckinsTableViewController class]]; 23 | 24 | self.spotsTableViewController = [[[SpotsTableViewController alloc] initWithStyle:UITableViewStylePlain] autorelease]; 25 | self.navigationController = [[[UINavigationController alloc] initWithRootViewController:self.spotsTableViewController] autorelease]; 26 | [self.window addSubview:self.navigationController.view]; 27 | [self.window makeKeyAndVisible]; 28 | return YES; 29 | } 30 | 31 | - (void)applicationWillResignActive:(UIApplication *)application 32 | { 33 | /* 34 | Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 35 | Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 36 | */ 37 | } 38 | 39 | - (void)applicationDidEnterBackground:(UIApplication *)application 40 | { 41 | /* 42 | Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 43 | If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 44 | */ 45 | } 46 | 47 | - (void)applicationWillEnterForeground:(UIApplication *)application 48 | { 49 | /* 50 | Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 51 | */ 52 | } 53 | 54 | - (void)applicationDidBecomeActive:(UIApplication *)application 55 | { 56 | /* 57 | Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 58 | */ 59 | } 60 | 61 | - (void)applicationWillTerminate:(UIApplication *)application 62 | { 63 | /* 64 | Called when the application is about to terminate. 65 | Save data if appropriate. 66 | See also applicationDidEnterBackground:. 67 | */ 68 | } 69 | 70 | - (void)dealloc 71 | { 72 | self.spotsTableViewController = nil; 73 | self.navigationController = nil; 74 | 75 | [_window release]; 76 | [super dealloc]; 77 | } 78 | 79 | @end 80 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/View Controllers/SpotsTableViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SpotsTableViewController.m 3 | // GowallaExample 4 | // 5 | // Created by Aaron Brethorst on 9/4/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "SpotsTableViewController.h" 10 | #import "UIImageView+AFNetworking.h" 11 | 12 | @implementation SpotsTableViewController 13 | @synthesize tableData; 14 | 15 | - (id)initWithStyle:(UITableViewStyle)style 16 | { 17 | self = [super initWithStyle:style]; 18 | if (self) { 19 | self.title = @"Spots"; 20 | } 21 | return self; 22 | } 23 | 24 | - (void)didReceiveMemoryWarning 25 | { 26 | // Releases the view if it doesn't have a superview. 27 | [super didReceiveMemoryWarning]; 28 | 29 | // Release any cached data, images, etc that aren't in use. 30 | } 31 | 32 | #pragma mark - View lifecycle 33 | 34 | - (void)viewDidLoad 35 | { 36 | [super viewDidLoad]; 37 | 38 | self.tableView.rowHeight = 60; 39 | 40 | self.tableData = [[[NSMutableArray alloc] init] autorelease]; 41 | 42 | [[AFGowallaAPIClient sharedClient] getPath:@"/spots" 43 | parameters:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat:47.623318], @"lat", [NSNumber numberWithFloat:-122.312937], @"lng", [NSNumber numberWithInt:50], @"radius", nil] 44 | success:^(id response) { 45 | [self.tableData addObjectsFromArray:[response objectForKey:@"spots"]]; 46 | [self.tableView reloadData]; 47 | } failure:^(NSError *error) { 48 | UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil] autorelease]; 49 | [alert show]; 50 | }]; 51 | } 52 | 53 | - (void)viewDidUnload 54 | { 55 | [super viewDidUnload]; 56 | self.tableData = nil; 57 | } 58 | 59 | #pragma mark - Table view data source 60 | 61 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 62 | { 63 | return [self.tableData count]; 64 | } 65 | 66 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 67 | { 68 | static NSString *CellIdentifier = @"Cell"; 69 | 70 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 71 | if (cell == nil) { 72 | cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 73 | cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 74 | } 75 | 76 | NSDictionary *spot = [self.tableData objectAtIndex:indexPath.row]; 77 | cell.textLabel.text = [spot objectForKey:@"name"]; 78 | [cell.imageView setImageWithURL:[NSURL URLWithString:[spot objectForKey:@"_image_url_50"]] 79 | placeholderImage:[UIImage imageNamed:@"empty_50.png"]]; 80 | 81 | return cell; 82 | } 83 | 84 | #pragma mark - Table view delegate 85 | 86 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 87 | { 88 | [[ABRouter sharedRouter] navigateTo:[[self.tableData objectAtIndex:indexPath.row] objectForKey:@"url"] 89 | withNavigationController:self.navigationController]; 90 | } 91 | 92 | @end 93 | -------------------------------------------------------------------------------- /README.markdown: -------------------------------------------------------------------------------- 1 | About 2 | ===== 3 | 4 | Jeff Verkoeyen has alluded to the creation of a Three20'esque URL<->View Controller router for Nimbus as part of his SOCKit project...but I had a very real need for such a thing earlier today. So, I made one. A rather braindead URL->View Controller mapper, but it serves my purposes well enough. 5 | 6 | There is a very simple example project included. The intention of this router is that it will be extremely easy to plug into a subclass of AFNetworking's AFRestClient. And, assuming that your REST API subscribes to some notions of HATEOAS, it should be *incredibly* easy to connect to your backend. 7 | 8 | Why 9 | ===== 10 | 11 | I don't know about you, but I'm really tired of explicitly importing and pushing view controllers. It feels incredibly brittle. So, why not outsource the responsibility? Tell one object about all of your view controllers and make it figure things out. 12 | 13 | Some Specifics 14 | ==== 15 | 16 | Every view controller that wants to participate in the routing system must implement the `Routable` protocol. And they should be initializable solely through their `-init` method. That's it. You can't route the root yet. 17 | 18 | In your App Delegate 19 | ----- 20 | 21 | Match URL patterns to view controllers: 22 | 23 | [[ABRouter sharedRouter] match:@"/api/path" to:[MyViewController class]]; 24 | 25 | In your parent view controllers 26 | ----- 27 | 28 | Create, populate, and push view controllers: 29 | 30 | [[ABRouter sharedRouter] navigateTo:[dict objectForKey:@"url"] withNavigationController:self.navigationController]; 31 | 32 | or 33 | 34 | [[ABRouter sharedRouter] display:obj withNavigationController:self.navigationController]; 35 | 36 | -display:withNavigationController: is a little janky at present, as it expects your object to have a -path method, but I haven't added a protocol for objects to enforce this. Soon, I promise. 37 | 38 | In your subordinate view controllers 39 | ----- 40 | 41 | Implement the `Routable` protocol, including the `apiPath` NSString property and optionally the `parameters` NSDictionary. 42 | 43 | Examples 44 | ==== 45 | 46 | Example 47 | ----- 48 | 49 | A super-simple example that shows how this works without involving anything ugly, like pulling data over the wire. :) 50 | 51 | GowallaExample 52 | ----- 53 | 54 | Shows you a list of the closest Gowalla 'spots' to where I was at the time of writing this example. Tap a spot to show more information about it. This example pulls in AFNetworking, and attempts to demonstrate the value of this sort of URL/view controller routing system. 55 | 56 | MappingExample 57 | ----- 58 | 59 | Demonstrates how to pass a dictionary of keys and values from the URL to the target view controller. 60 | 61 | MIT License 62 | ===== 63 | 64 | Copyright (c) 2011 Aaron Brethorst 65 | 66 | Permission is hereby granted, free of charge, to any person obtaining a 67 | copy of this software and associated documentation files (the "Software"), 68 | to deal in the Software without restriction, including without limitation 69 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 70 | and/or sell copies of the Software, and to permit persons to whom the 71 | Software is furnished to do so, subject to the following conditions: 72 | 73 | The above copyright notice and this permission notice shall be included in 74 | all copies or substantial portions of the Software. 75 | 76 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 77 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 78 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 79 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 80 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 81 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 82 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /ABRouter/ABRouter.m: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 Aaron Brethorst 2 | 3 | // Permission is hereby granted, free of charge, to any person obtaining a 4 | // copy of this software and associated documentation files (the "Software"), 5 | // to deal in the Software without restriction, including without limitation 6 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | // and/or sell copies of the Software, and to permit persons to whom the 8 | // Software is furnished to do so, subject to the following conditions: 9 | 10 | // The above copyright notice and this permission notice shall be included in 11 | // all copies or substantial portions of the Software. 12 | 13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19 | // DEALINGS IN THE SOFTWARE. 20 | 21 | #import "ABRouter.h" 22 | #import "SOCKit.h" 23 | 24 | #define kPatternKey @"PatternKey" 25 | #define kViewControllerKey @"ViewControllerKey" 26 | 27 | static ABRouter *_sharedRouter = nil; 28 | 29 | @implementation ABRouter 30 | 31 | + (ABRouter*)sharedRouter 32 | { 33 | @synchronized(self) 34 | { 35 | if (!_sharedRouter) 36 | { 37 | _sharedRouter = [[ABRouter alloc] init]; 38 | } 39 | } 40 | 41 | return _sharedRouter; 42 | } 43 | 44 | - (id)init 45 | { 46 | self = [super init]; 47 | if (self) 48 | { 49 | routePatterns = [[NSMutableArray alloc] init]; 50 | } 51 | return self; 52 | } 53 | 54 | - (void)dealloc 55 | { 56 | [routePatterns release]; 57 | [super dealloc]; 58 | } 59 | 60 | #pragma mark - Public Methods 61 | 62 | - (void)match:(NSString*)pattern to:(Class)aClass 63 | { 64 | if (![aClass conformsToProtocol:@protocol(Routable)]) 65 | { 66 | [NSException raise:@"View Controller must conform to Routable protocol." format:@"%@", NSStringFromClass(aClass), nil]; 67 | } 68 | 69 | [routePatterns addObject:[NSDictionary dictionaryWithObjectsAndKeys:[SOCPattern patternWithString:pattern], kPatternKey, aClass, kViewControllerKey, nil]]; 70 | } 71 | 72 | - (void)modallyPresent:(NSString*)route from:(UIViewController*)viewController 73 | { 74 | UIViewController * pushMe = [self match:route]; 75 | pushMe.apiPath = route; 76 | UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:pushMe] autorelease]; 77 | [viewController presentModalViewController:nav animated:YES]; 78 | } 79 | 80 | - (void)display:(id)obj withNavigationController:(UINavigationController*)navController 81 | { 82 | UIViewController * pushMe = [self match:[obj path]]; 83 | pushMe.entity = obj; 84 | [navController pushViewController:pushMe animated:YES]; 85 | } 86 | 87 | - (void)navigateTo:(NSString*)route withNavigationController:(UINavigationController*)navController 88 | { 89 | UIViewController * pushMe = [self match:route]; 90 | [navController pushViewController:pushMe animated:YES]; 91 | } 92 | 93 | - (UIViewController *)match:(NSString*)route 94 | { 95 | NSArray *pathInfo = [route componentsSeparatedByString:@"?"]; 96 | route = [pathInfo objectAtIndex:0]; 97 | 98 | NSMutableArray *potentialMatches = [NSMutableArray array]; 99 | for (NSDictionary *d in routePatterns) 100 | { 101 | if ([[d objectForKey:kPatternKey] stringMatches:route]) 102 | { 103 | [potentialMatches addObject:d]; 104 | } 105 | } 106 | 107 | if (0 == [potentialMatches count]) 108 | { 109 | // TODO: figure out a better punting strategy. 110 | // Facebook opens up a UIWebView, which is sort 111 | // of lame but seems like the least terrible of 112 | // all solutions. 113 | 114 | return nil; 115 | } 116 | 117 | NSDictionary *match = [potentialMatches lastObject]; 118 | 119 | SOCPattern *pattern = [match objectForKey:kPatternKey]; 120 | Class class = [match objectForKey:kViewControllerKey]; 121 | 122 | UIViewController * pushMe = [[[class alloc] init] autorelease]; 123 | pushMe.apiPath = route; 124 | 125 | if ([pushMe respondsToSelector:@selector(setParameters:)]) 126 | { 127 | NSMutableDictionary *params = [NSMutableDictionary dictionary]; 128 | 129 | if (pathInfo.count > 1) 130 | { 131 | NSString *paramsString = [pathInfo objectAtIndex:1]; 132 | NSArray *paramStringArr = [paramsString componentsSeparatedByString:@"&"]; 133 | for (NSString *paramString in paramStringArr) 134 | { 135 | NSArray *paramArr = [paramString componentsSeparatedByString:@"="]; 136 | if (paramArr.count > 1) 137 | { 138 | NSString *key = [paramArr objectAtIndex:0]; 139 | NSString *value = [paramArr objectAtIndex:1]; 140 | [params setObject:value forKey:key]; 141 | } 142 | } 143 | } 144 | 145 | [params addEntriesFromDictionary:[pattern parameterDictionaryFromSourceString:route]]; 146 | 147 | [pushMe performSelector:@selector(setParameters:) withObject:params]; 148 | } 149 | 150 | return pushMe; 151 | } 152 | 153 | @end 154 | -------------------------------------------------------------------------------- /Example/en.lproj/MainWindow.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 800 5 | 10D540 6 | 760 7 | 1038.29 8 | 460.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 81 12 | 13 | 14 | YES 15 | 16 | 17 | 18 | YES 19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 20 | 21 | 22 | YES 23 | 24 | YES 25 | 26 | 27 | YES 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | IBCocoaTouchFramework 42 | 43 | 44 | 45 | 1316 46 | 47 | {320, 480} 48 | 49 | 50 | 1 51 | MSAxIDEAA 52 | 53 | NO 54 | NO 55 | 56 | IBCocoaTouchFramework 57 | YES 58 | 59 | 60 | 61 | 62 | YES 63 | 64 | 65 | delegate 66 | 67 | 68 | 69 | 4 70 | 71 | 72 | 73 | window 74 | 75 | 76 | 77 | 5 78 | 79 | 80 | 81 | 82 | YES 83 | 84 | 0 85 | 86 | 87 | 88 | 89 | 90 | 2 91 | 92 | 93 | YES 94 | 95 | 96 | 97 | 98 | -1 99 | 100 | 101 | File's Owner 102 | 103 | 104 | 3 105 | 106 | 107 | 108 | 109 | -2 110 | 111 | 112 | 113 | 114 | 115 | 116 | YES 117 | 118 | YES 119 | -1.CustomClassName 120 | -2.CustomClassName 121 | 2.IBAttributePlaceholdersKey 122 | 2.IBEditorWindowLastContentRect 123 | 2.IBPluginDependency 124 | 3.CustomClassName 125 | 3.IBPluginDependency 126 | 127 | 128 | YES 129 | UIApplication 130 | UIResponder 131 | 132 | YES 133 | 134 | 135 | YES 136 | 137 | 138 | {{198, 376}, {320, 480}} 139 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 140 | ExampleAppDelegate 141 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 142 | 143 | 144 | 145 | YES 146 | 147 | 148 | YES 149 | 150 | 151 | 152 | 153 | YES 154 | 155 | 156 | YES 157 | 158 | 159 | 160 | 9 161 | 162 | 163 | 164 | YES 165 | 166 | ExampleAppDelegate 167 | NSObject 168 | 169 | window 170 | UIWindow 171 | 172 | 173 | IBProjectSource 174 | ExampleAppDelegate.h 175 | 176 | 177 | 178 | ExampleAppDelegate 179 | NSObject 180 | 181 | IBUserSource 182 | 183 | 184 | 185 | 186 | 187 | 0 188 | IBCocoaTouchFramework 189 | 190 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 191 | 192 | 193 | YES 194 | Example.xcodeproj 195 | 3 196 | 81 197 | 198 | 199 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/MapViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 11B26 6 | 1617 7 | 1138 8 | 566.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 534 12 | 13 | 14 | YES 15 | IBProxyObject 16 | IBUIView 17 | IBMKMapView 18 | 19 | 20 | YES 21 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 22 | 23 | 24 | YES 25 | 26 | YES 27 | 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | 42 | 274 43 | 44 | YES 45 | 46 | 47 | 274 48 | {320, 460} 49 | 50 | 51 | _NS:774 52 | YES 53 | YES 54 | IBCocoaTouchFramework 55 | 56 | 57 | {{0, 20}, {320, 460}} 58 | 59 | 60 | 61 | 62 | 3 63 | MQA 64 | 65 | 2 66 | 67 | 68 | 69 | IBCocoaTouchFramework 70 | 71 | 72 | 73 | 74 | YES 75 | 76 | 77 | view 78 | 79 | 80 | 81 | 3 82 | 83 | 84 | 85 | mapView 86 | 87 | 88 | 89 | 5 90 | 91 | 92 | 93 | 94 | YES 95 | 96 | 0 97 | 98 | 99 | 100 | 101 | 102 | 1 103 | 104 | 105 | YES 106 | 107 | 108 | 109 | 110 | 111 | -1 112 | 113 | 114 | File's Owner 115 | 116 | 117 | -2 118 | 119 | 120 | 121 | 122 | 4 123 | 124 | 125 | 126 | 127 | 128 | 129 | YES 130 | 131 | YES 132 | -1.CustomClassName 133 | -1.IBPluginDependency 134 | -2.CustomClassName 135 | -2.IBPluginDependency 136 | 1.IBPluginDependency 137 | 4.IBPluginDependency 138 | 139 | 140 | YES 141 | MapViewController 142 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 143 | UIResponder 144 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 145 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 146 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 147 | 148 | 149 | 150 | YES 151 | 152 | 153 | 154 | 155 | 156 | YES 157 | 158 | 159 | 160 | 161 | 5 162 | 163 | 164 | 165 | YES 166 | 167 | MapViewController 168 | UIViewController 169 | 170 | mapView 171 | MKMapView 172 | 173 | 174 | mapView 175 | 176 | mapView 177 | MKMapView 178 | 179 | 180 | 181 | IBProjectSource 182 | ./Classes/MapViewController.h 183 | 184 | 185 | 186 | 187 | 0 188 | IBCocoaTouchFramework 189 | 190 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 191 | 192 | 193 | YES 194 | 3 195 | 534 196 | 197 | 198 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/en.lproj/MainWindow.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 800 5 | 10D540 6 | 760 7 | 1038.29 8 | 460.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 81 12 | 13 | 14 | YES 15 | 16 | 17 | 18 | YES 19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 20 | 21 | 22 | YES 23 | 24 | YES 25 | 26 | 27 | YES 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | IBCocoaTouchFramework 42 | 43 | 44 | 45 | 1316 46 | 47 | {320, 480} 48 | 49 | 50 | 1 51 | MSAxIDEAA 52 | 53 | NO 54 | NO 55 | 56 | IBCocoaTouchFramework 57 | YES 58 | 59 | 60 | 61 | 62 | YES 63 | 64 | 65 | delegate 66 | 67 | 68 | 69 | 4 70 | 71 | 72 | 73 | window 74 | 75 | 76 | 77 | 5 78 | 79 | 80 | 81 | 82 | YES 83 | 84 | 0 85 | 86 | 87 | 88 | 89 | 90 | 2 91 | 92 | 93 | YES 94 | 95 | 96 | 97 | 98 | -1 99 | 100 | 101 | File's Owner 102 | 103 | 104 | 3 105 | 106 | 107 | 108 | 109 | -2 110 | 111 | 112 | 113 | 114 | 115 | 116 | YES 117 | 118 | YES 119 | -1.CustomClassName 120 | -2.CustomClassName 121 | 2.IBAttributePlaceholdersKey 122 | 2.IBEditorWindowLastContentRect 123 | 2.IBPluginDependency 124 | 3.CustomClassName 125 | 3.IBPluginDependency 126 | 127 | 128 | YES 129 | UIApplication 130 | UIResponder 131 | 132 | YES 133 | 134 | 135 | YES 136 | 137 | 138 | {{198, 376}, {320, 480}} 139 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 140 | GowallaExampleAppDelegate 141 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 142 | 143 | 144 | 145 | YES 146 | 147 | 148 | YES 149 | 150 | 151 | 152 | 153 | YES 154 | 155 | 156 | YES 157 | 158 | 159 | 160 | 9 161 | 162 | 163 | 164 | YES 165 | 166 | GowallaExampleAppDelegate 167 | NSObject 168 | 169 | window 170 | UIWindow 171 | 172 | 173 | IBProjectSource 174 | GowallaExampleAppDelegate.h 175 | 176 | 177 | 178 | GowallaExampleAppDelegate 179 | NSObject 180 | 181 | IBUserSource 182 | 183 | 184 | 185 | 186 | 187 | 0 188 | IBCocoaTouchFramework 189 | 190 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 191 | 192 | 193 | YES 194 | GowallaExample.xcodeproj 195 | 3 196 | 81 197 | 198 | 199 | -------------------------------------------------------------------------------- /Example/View Controllers/PhotoViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 11B26 6 | 1617 7 | 1138 8 | 566.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 534 12 | 13 | 14 | YES 15 | IBProxyObject 16 | IBUIView 17 | IBUILabel 18 | 19 | 20 | YES 21 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 22 | 23 | 24 | YES 25 | 26 | YES 27 | 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | 42 | 274 43 | 44 | YES 45 | 46 | 47 | 292 48 | {{20, 129}, {280, 21}} 49 | 50 | 51 | _NS:311 52 | NO 53 | YES 54 | 7 55 | NO 56 | IBCocoaTouchFramework 57 | Label 58 | 59 | 1 60 | MCAwIDAAA 61 | 62 | 63 | 1 64 | 10 65 | 1 66 | 67 | 68 | {{0, 20}, {320, 460}} 69 | 70 | 71 | 72 | 3 73 | MQA 74 | 75 | 2 76 | 77 | 78 | 79 | IBCocoaTouchFramework 80 | 81 | 82 | 83 | 84 | YES 85 | 86 | 87 | view 88 | 89 | 90 | 91 | 3 92 | 93 | 94 | 95 | pathLabel 96 | 97 | 98 | 99 | 5 100 | 101 | 102 | 103 | 104 | YES 105 | 106 | 0 107 | 108 | 109 | 110 | 111 | 112 | 1 113 | 114 | 115 | YES 116 | 117 | 118 | 119 | 120 | 121 | -1 122 | 123 | 124 | File's Owner 125 | 126 | 127 | -2 128 | 129 | 130 | 131 | 132 | 4 133 | 134 | 135 | 136 | 137 | 138 | 139 | YES 140 | 141 | YES 142 | -1.CustomClassName 143 | -1.IBPluginDependency 144 | -2.CustomClassName 145 | -2.IBPluginDependency 146 | 1.IBPluginDependency 147 | 4.IBPluginDependency 148 | 149 | 150 | YES 151 | PhotoViewController 152 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 153 | UIResponder 154 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 155 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 156 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 157 | 158 | 159 | 160 | YES 161 | 162 | 163 | 164 | 165 | 166 | YES 167 | 168 | 169 | 170 | 171 | 5 172 | 173 | 174 | 175 | YES 176 | 177 | PhotoViewController 178 | UIViewController 179 | 180 | pathLabel 181 | UILabel 182 | 183 | 184 | pathLabel 185 | 186 | pathLabel 187 | UILabel 188 | 189 | 190 | 191 | IBProjectSource 192 | ./Classes/PhotoViewController.h 193 | 194 | 195 | 196 | 197 | 0 198 | IBCocoaTouchFramework 199 | 200 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 201 | 202 | 203 | YES 204 | 3 205 | 534 206 | 207 | 208 | -------------------------------------------------------------------------------- /Example/View Controllers/PhotoListViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 11B26 6 | 1617 7 | 1138 8 | 566.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 534 12 | 13 | 14 | YES 15 | IBUIButton 16 | IBUIView 17 | IBUILabel 18 | IBProxyObject 19 | 20 | 21 | YES 22 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 23 | 24 | 25 | YES 26 | 27 | YES 28 | 29 | 30 | 31 | 32 | YES 33 | 34 | IBFilesOwner 35 | IBCocoaTouchFramework 36 | 37 | 38 | IBFirstResponder 39 | IBCocoaTouchFramework 40 | 41 | 42 | 43 | 274 44 | 45 | YES 46 | 47 | 48 | 292 49 | {{20, 39}, {280, 21}} 50 | 51 | 52 | 53 | _NS:311 54 | NO 55 | YES 56 | 7 57 | NO 58 | IBCocoaTouchFramework 59 | Label 60 | 61 | 1 62 | MCAwIDAAA 63 | 64 | 65 | 1 66 | 10 67 | 1 68 | 69 | 70 | 71 | 292 72 | {{96, 101}, {129, 37}} 73 | 74 | 75 | 76 | _NS:222 77 | NO 78 | IBCocoaTouchFramework 79 | 0 80 | 0 81 | 82 | Helvetica-Bold 83 | 15 84 | 16 85 | 86 | 1 87 | Here's a photo 88 | 89 | 3 90 | MQA 91 | 92 | 93 | 1 94 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 95 | 96 | 97 | 3 98 | MC41AA 99 | 100 | 101 | 102 | 103 | 292 104 | {{96, 146}, {129, 37}} 105 | 106 | 107 | 108 | _NS:222 109 | NO 110 | 1 111 | IBCocoaTouchFramework 112 | 0 113 | 0 114 | 115 | 1 116 | And another 117 | 118 | 119 | 1 120 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 121 | 122 | 123 | 124 | 125 | {{0, 20}, {320, 460}} 126 | 127 | 128 | 129 | 130 | 3 131 | MQA 132 | 133 | 2 134 | 135 | 136 | 137 | IBCocoaTouchFramework 138 | 139 | 140 | 141 | 142 | YES 143 | 144 | 145 | view 146 | 147 | 148 | 149 | 3 150 | 151 | 152 | 153 | pathLabel 154 | 155 | 156 | 157 | 5 158 | 159 | 160 | 161 | showPhoto: 162 | 163 | 164 | 7 165 | 166 | 9 167 | 168 | 169 | 170 | showPhoto: 171 | 172 | 173 | 7 174 | 175 | 10 176 | 177 | 178 | 179 | 180 | YES 181 | 182 | 0 183 | 184 | 185 | 186 | 187 | 188 | 1 189 | 190 | 191 | YES 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | -1 200 | 201 | 202 | File's Owner 203 | 204 | 205 | -2 206 | 207 | 208 | 209 | 210 | 4 211 | 212 | 213 | 214 | 215 | 6 216 | 217 | 218 | 219 | 220 | 7 221 | 222 | 223 | 224 | 225 | 226 | 227 | YES 228 | 229 | YES 230 | -1.CustomClassName 231 | -1.IBPluginDependency 232 | -2.CustomClassName 233 | -2.IBPluginDependency 234 | 1.IBPluginDependency 235 | 4.IBPluginDependency 236 | 6.IBPluginDependency 237 | 7.IBPluginDependency 238 | 239 | 240 | YES 241 | PhotoListViewController 242 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 243 | UIResponder 244 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 245 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 246 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 247 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 248 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 249 | 250 | 251 | 252 | YES 253 | 254 | 255 | 256 | 257 | 258 | YES 259 | 260 | 261 | 262 | 263 | 10 264 | 265 | 266 | 267 | YES 268 | 269 | PhotoListViewController 270 | UIViewController 271 | 272 | showPhoto: 273 | id 274 | 275 | 276 | showPhoto: 277 | 278 | showPhoto: 279 | id 280 | 281 | 282 | 283 | pathLabel 284 | UILabel 285 | 286 | 287 | pathLabel 288 | 289 | pathLabel 290 | UILabel 291 | 292 | 293 | 294 | IBProjectSource 295 | ./Classes/PhotoListViewController.h 296 | 297 | 298 | 299 | 300 | 0 301 | IBCocoaTouchFramework 302 | 303 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 304 | 305 | 306 | YES 307 | 3 308 | 534 309 | 310 | 311 | -------------------------------------------------------------------------------- /Example/View Controllers/RootViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 11B26 6 | 1617 7 | 1138 8 | 566.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 534 12 | 13 | 14 | YES 15 | IBProxyObject 16 | IBUIView 17 | IBUIButton 18 | 19 | 20 | YES 21 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 22 | 23 | 24 | YES 25 | 26 | YES 27 | 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | 42 | 274 43 | 44 | YES 45 | 46 | 47 | 292 48 | {{80, 48}, {160, 37}} 49 | 50 | 51 | 52 | _NS:222 53 | NO 54 | IBCocoaTouchFramework 55 | 0 56 | 0 57 | 58 | Helvetica-Bold 59 | 15 60 | 16 61 | 62 | 1 63 | View some albums 64 | 65 | 3 66 | MQA 67 | 68 | 69 | 1 70 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 71 | 72 | 73 | 3 74 | MC41AA 75 | 76 | 77 | 78 | 79 | 292 80 | {{80, 101}, {160, 37}} 81 | 82 | 83 | 84 | _NS:222 85 | NO 86 | IBCocoaTouchFramework 87 | 0 88 | 0 89 | 90 | 1 91 | View some photos 92 | 93 | 94 | 1 95 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 96 | 97 | 98 | 99 | 100 | 101 | 292 102 | {{74, 178}, {173, 37}} 103 | 104 | 105 | 106 | _NS:222 107 | NO 108 | IBCocoaTouchFramework 109 | 0 110 | 0 111 | 112 | 1 113 | How about a modal? 114 | 115 | 116 | 1 117 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 118 | 119 | 120 | 121 | 122 | {{0, 20}, {320, 460}} 123 | 124 | 125 | 126 | 127 | 3 128 | MQA 129 | 130 | 2 131 | 132 | 133 | 134 | IBCocoaTouchFramework 135 | 136 | 137 | 138 | 139 | YES 140 | 141 | 142 | view 143 | 144 | 145 | 146 | 3 147 | 148 | 149 | 150 | viewAlbums: 151 | 152 | 153 | 7 154 | 155 | 6 156 | 157 | 158 | 159 | viewPhotos: 160 | 161 | 162 | 7 163 | 164 | 7 165 | 166 | 167 | 168 | modal: 169 | 170 | 171 | 7 172 | 173 | 9 174 | 175 | 176 | 177 | 178 | YES 179 | 180 | 0 181 | 182 | 183 | 184 | 185 | 186 | 1 187 | 188 | 189 | YES 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | -1 198 | 199 | 200 | File's Owner 201 | 202 | 203 | -2 204 | 205 | 206 | 207 | 208 | 4 209 | 210 | 211 | 212 | 213 | 5 214 | 215 | 216 | 217 | 218 | 8 219 | 220 | 221 | 222 | 223 | 224 | 225 | YES 226 | 227 | YES 228 | -1.CustomClassName 229 | -1.IBPluginDependency 230 | -2.CustomClassName 231 | -2.IBPluginDependency 232 | 1.IBPluginDependency 233 | 4.IBPluginDependency 234 | 5.IBPluginDependency 235 | 8.IBPluginDependency 236 | 237 | 238 | YES 239 | RootViewController 240 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 241 | UIResponder 242 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 243 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 244 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 245 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 246 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 247 | 248 | 249 | 250 | YES 251 | 252 | 253 | 254 | 255 | 256 | YES 257 | 258 | 259 | 260 | 261 | 9 262 | 263 | 264 | 265 | YES 266 | 267 | RootViewController 268 | UIViewController 269 | 270 | YES 271 | 272 | YES 273 | modal: 274 | viewAlbums: 275 | viewPhotos: 276 | 277 | 278 | YES 279 | id 280 | id 281 | id 282 | 283 | 284 | 285 | YES 286 | 287 | YES 288 | modal: 289 | viewAlbums: 290 | viewPhotos: 291 | 292 | 293 | YES 294 | 295 | modal: 296 | id 297 | 298 | 299 | viewAlbums: 300 | id 301 | 302 | 303 | viewPhotos: 304 | id 305 | 306 | 307 | 308 | 309 | IBProjectSource 310 | ./Classes/RootViewController.h 311 | 312 | 313 | 314 | 315 | 0 316 | IBCocoaTouchFramework 317 | 318 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 319 | 320 | 321 | YES 322 | 3 323 | 534 324 | 325 | 326 | -------------------------------------------------------------------------------- /Example/View Controllers/AlbumListViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 11B26 6 | 1617 7 | 1138 8 | 566.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 534 12 | 13 | 14 | YES 15 | IBUIButton 16 | IBUIView 17 | IBUILabel 18 | IBProxyObject 19 | 20 | 21 | YES 22 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 23 | 24 | 25 | YES 26 | 27 | YES 28 | 29 | 30 | 31 | 32 | YES 33 | 34 | IBFilesOwner 35 | IBCocoaTouchFramework 36 | 37 | 38 | IBFirstResponder 39 | IBCocoaTouchFramework 40 | 41 | 42 | 43 | 274 44 | 45 | YES 46 | 47 | 48 | 292 49 | {{20, 35}, {280, 21}} 50 | 51 | 52 | 53 | _NS:311 54 | NO 55 | YES 56 | 7 57 | NO 58 | IBCocoaTouchFramework 59 | Label 60 | 61 | 1 62 | MCAwIDAAA 63 | 64 | 65 | 1 66 | 10 67 | 1 68 | 69 | 70 | 71 | 292 72 | {{33, 99}, {254, 37}} 73 | 74 | 75 | 76 | _NS:222 77 | NO 78 | 1 79 | IBCocoaTouchFramework 80 | 0 81 | 0 82 | 83 | Helvetica-Bold 84 | 15 85 | 16 86 | 87 | 1 88 | View Photo Album: WWDC 2011 89 | 90 | 3 91 | MQA 92 | 93 | 94 | 1 95 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 96 | 97 | 98 | 3 99 | MC41AA 100 | 101 | 102 | 103 | 104 | 292 105 | {{33, 144}, {254, 37}} 106 | 107 | 108 | 109 | _NS:222 110 | NO 111 | 2 112 | IBCocoaTouchFramework 113 | 0 114 | 0 115 | 116 | 1 117 | View Photo Album: Seattle 118 | 119 | 120 | 1 121 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 122 | 123 | 124 | 125 | 126 | 127 | 292 128 | {{33, 189}, {254, 37}} 129 | 130 | 131 | 132 | _NS:222 133 | NO 134 | 3 135 | IBCocoaTouchFramework 136 | 0 137 | 0 138 | 139 | 1 140 | View Photo Album: Maui 141 | 142 | 143 | 1 144 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 145 | 146 | 147 | 148 | 149 | {{0, 20}, {320, 460}} 150 | 151 | 152 | 153 | 154 | 3 155 | MQA 156 | 157 | 2 158 | 159 | 160 | 161 | IBCocoaTouchFramework 162 | 163 | 164 | 165 | 166 | YES 167 | 168 | 169 | view 170 | 171 | 172 | 173 | 3 174 | 175 | 176 | 177 | pathLabel 178 | 179 | 180 | 181 | 5 182 | 183 | 184 | 185 | showAlbum: 186 | 187 | 188 | 7 189 | 190 | 9 191 | 192 | 193 | 194 | showAlbum: 195 | 196 | 197 | 7 198 | 199 | 10 200 | 201 | 202 | 203 | showAlbum: 204 | 205 | 206 | 7 207 | 208 | 11 209 | 210 | 211 | 212 | 213 | YES 214 | 215 | 0 216 | 217 | 218 | 219 | 220 | 221 | 1 222 | 223 | 224 | YES 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | -1 234 | 235 | 236 | File's Owner 237 | 238 | 239 | -2 240 | 241 | 242 | 243 | 244 | 4 245 | 246 | 247 | 248 | 249 | 6 250 | 251 | 252 | 253 | 254 | 7 255 | 256 | 257 | 258 | 259 | 8 260 | 261 | 262 | 263 | 264 | 265 | 266 | YES 267 | 268 | YES 269 | -1.CustomClassName 270 | -1.IBPluginDependency 271 | -2.CustomClassName 272 | -2.IBPluginDependency 273 | 1.IBPluginDependency 274 | 4.IBPluginDependency 275 | 6.IBPluginDependency 276 | 7.IBPluginDependency 277 | 8.IBPluginDependency 278 | 279 | 280 | YES 281 | AlbumListViewController 282 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 283 | UIResponder 284 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 285 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 286 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 287 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 288 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 289 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 290 | 291 | 292 | 293 | YES 294 | 295 | 296 | 297 | 298 | 299 | YES 300 | 301 | 302 | 303 | 304 | 11 305 | 306 | 307 | 308 | YES 309 | 310 | AlbumListViewController 311 | UIViewController 312 | 313 | showAlbum: 314 | id 315 | 316 | 317 | showAlbum: 318 | 319 | showAlbum: 320 | id 321 | 322 | 323 | 324 | pathLabel 325 | UILabel 326 | 327 | 328 | pathLabel 329 | 330 | pathLabel 331 | UILabel 332 | 333 | 334 | 335 | IBProjectSource 336 | ./Classes/AlbumListViewController.h 337 | 338 | 339 | 340 | 341 | 0 342 | IBCocoaTouchFramework 343 | 344 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 345 | 346 | 347 | YES 348 | 3 349 | 534 350 | 351 | 352 | -------------------------------------------------------------------------------- /MappingExample/MappingExample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 93BF78E8141D6EBA00EF7849 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93BF78E7141D6EBA00EF7849 /* UIKit.framework */; }; 11 | 93BF78EA141D6EBA00EF7849 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93BF78E9141D6EBA00EF7849 /* Foundation.framework */; }; 12 | 93BF78EC141D6EBA00EF7849 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93BF78EB141D6EBA00EF7849 /* CoreGraphics.framework */; }; 13 | 93BF78F2141D6EBA00EF7849 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 93BF78F0141D6EBA00EF7849 /* InfoPlist.strings */; }; 14 | 93BF78F4141D6EBA00EF7849 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BF78F3141D6EBA00EF7849 /* main.m */; }; 15 | 93BF78F8141D6EBA00EF7849 /* MappingExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BF78F7141D6EBA00EF7849 /* MappingExampleAppDelegate.m */; }; 16 | 93BF78FB141D6EBA00EF7849 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93BF78F9141D6EBA00EF7849 /* MainWindow.xib */; }; 17 | 93BF78FE141D6EBA00EF7849 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BF78FD141D6EBA00EF7849 /* RootViewController.m */; }; 18 | 93BF7901141D6EBA00EF7849 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93BF78FF141D6EBA00EF7849 /* RootViewController.xib */; }; 19 | 93BF790A141D6EDC00EF7849 /* SOCKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BF7909141D6EDC00EF7849 /* SOCKit.m */; }; 20 | 93BF790E141D6EE200EF7849 /* ABRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BF790D141D6EE200EF7849 /* ABRouter.m */; }; 21 | 93BF7912141D6F2100EF7849 /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93BF7910141D6F2100EF7849 /* MapViewController.m */; }; 22 | 93BF7913141D6F2100EF7849 /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 93BF7911141D6F2100EF7849 /* MapViewController.xib */; }; 23 | 93BF7918141D72D300EF7849 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93BF7917141D72D300EF7849 /* MapKit.framework */; }; 24 | 93BF791A141D740600EF7849 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93BF7919141D740600EF7849 /* CoreLocation.framework */; }; 25 | /* End PBXBuildFile section */ 26 | 27 | /* Begin PBXFileReference section */ 28 | 93BF78E3141D6EBA00EF7849 /* MappingExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MappingExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 29 | 93BF78E7141D6EBA00EF7849 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 30 | 93BF78E9141D6EBA00EF7849 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 31 | 93BF78EB141D6EBA00EF7849 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 32 | 93BF78EF141D6EBA00EF7849 /* MappingExample-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MappingExample-Info.plist"; sourceTree = ""; }; 33 | 93BF78F1141D6EBA00EF7849 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 34 | 93BF78F3141D6EBA00EF7849 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 35 | 93BF78F5141D6EBA00EF7849 /* MappingExample-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MappingExample-Prefix.pch"; sourceTree = ""; }; 36 | 93BF78F6141D6EBA00EF7849 /* MappingExampleAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MappingExampleAppDelegate.h; sourceTree = ""; }; 37 | 93BF78F7141D6EBA00EF7849 /* MappingExampleAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MappingExampleAppDelegate.m; sourceTree = ""; }; 38 | 93BF78FA141D6EBA00EF7849 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; }; 39 | 93BF78FC141D6EBA00EF7849 /* RootViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = ""; }; 40 | 93BF78FD141D6EBA00EF7849 /* RootViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = ""; }; 41 | 93BF7900141D6EBA00EF7849 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/RootViewController.xib; sourceTree = ""; }; 42 | 93BF7908141D6EDC00EF7849 /* SOCKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SOCKit.h; path = ../SOCKit/SOCKit.h; sourceTree = ""; }; 43 | 93BF7909141D6EDC00EF7849 /* SOCKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SOCKit.m; path = ../SOCKit/SOCKit.m; sourceTree = ""; }; 44 | 93BF790C141D6EE200EF7849 /* ABRouter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ABRouter.h; sourceTree = ""; }; 45 | 93BF790D141D6EE200EF7849 /* ABRouter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ABRouter.m; sourceTree = ""; }; 46 | 93BF790F141D6F2100EF7849 /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = ""; }; 47 | 93BF7910141D6F2100EF7849 /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = ""; }; 48 | 93BF7911141D6F2100EF7849 /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = ""; }; 49 | 93BF7917141D72D300EF7849 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; 50 | 93BF7919141D740600EF7849 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; 51 | /* End PBXFileReference section */ 52 | 53 | /* Begin PBXFrameworksBuildPhase section */ 54 | 93BF78E0141D6EBA00EF7849 /* Frameworks */ = { 55 | isa = PBXFrameworksBuildPhase; 56 | buildActionMask = 2147483647; 57 | files = ( 58 | 93BF791A141D740600EF7849 /* CoreLocation.framework in Frameworks */, 59 | 93BF7918141D72D300EF7849 /* MapKit.framework in Frameworks */, 60 | 93BF78E8141D6EBA00EF7849 /* UIKit.framework in Frameworks */, 61 | 93BF78EA141D6EBA00EF7849 /* Foundation.framework in Frameworks */, 62 | 93BF78EC141D6EBA00EF7849 /* CoreGraphics.framework in Frameworks */, 63 | ); 64 | runOnlyForDeploymentPostprocessing = 0; 65 | }; 66 | /* End PBXFrameworksBuildPhase section */ 67 | 68 | /* Begin PBXGroup section */ 69 | 93BF78D8141D6EBA00EF7849 = { 70 | isa = PBXGroup; 71 | children = ( 72 | 93BF790B141D6EE200EF7849 /* ABRouter */, 73 | 93BF7907141D6ED000EF7849 /* SOCKit */, 74 | 93BF78ED141D6EBA00EF7849 /* MappingExample */, 75 | 93BF78E6141D6EBA00EF7849 /* Frameworks */, 76 | 93BF78E4141D6EBA00EF7849 /* Products */, 77 | ); 78 | sourceTree = ""; 79 | }; 80 | 93BF78E4141D6EBA00EF7849 /* Products */ = { 81 | isa = PBXGroup; 82 | children = ( 83 | 93BF78E3141D6EBA00EF7849 /* MappingExample.app */, 84 | ); 85 | name = Products; 86 | sourceTree = ""; 87 | }; 88 | 93BF78E6141D6EBA00EF7849 /* Frameworks */ = { 89 | isa = PBXGroup; 90 | children = ( 91 | 93BF7919141D740600EF7849 /* CoreLocation.framework */, 92 | 93BF7917141D72D300EF7849 /* MapKit.framework */, 93 | 93BF78E7141D6EBA00EF7849 /* UIKit.framework */, 94 | 93BF78E9141D6EBA00EF7849 /* Foundation.framework */, 95 | 93BF78EB141D6EBA00EF7849 /* CoreGraphics.framework */, 96 | ); 97 | name = Frameworks; 98 | sourceTree = ""; 99 | }; 100 | 93BF78ED141D6EBA00EF7849 /* MappingExample */ = { 101 | isa = PBXGroup; 102 | children = ( 103 | 93BF78F6141D6EBA00EF7849 /* MappingExampleAppDelegate.h */, 104 | 93BF78F7141D6EBA00EF7849 /* MappingExampleAppDelegate.m */, 105 | 93BF78F9141D6EBA00EF7849 /* MainWindow.xib */, 106 | 93BF78FC141D6EBA00EF7849 /* RootViewController.h */, 107 | 93BF78FD141D6EBA00EF7849 /* RootViewController.m */, 108 | 93BF78FF141D6EBA00EF7849 /* RootViewController.xib */, 109 | 93BF78EE141D6EBA00EF7849 /* Supporting Files */, 110 | 93BF790F141D6F2100EF7849 /* MapViewController.h */, 111 | 93BF7910141D6F2100EF7849 /* MapViewController.m */, 112 | 93BF7911141D6F2100EF7849 /* MapViewController.xib */, 113 | ); 114 | path = MappingExample; 115 | sourceTree = ""; 116 | }; 117 | 93BF78EE141D6EBA00EF7849 /* Supporting Files */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | 93BF78EF141D6EBA00EF7849 /* MappingExample-Info.plist */, 121 | 93BF78F0141D6EBA00EF7849 /* InfoPlist.strings */, 122 | 93BF78F3141D6EBA00EF7849 /* main.m */, 123 | 93BF78F5141D6EBA00EF7849 /* MappingExample-Prefix.pch */, 124 | ); 125 | name = "Supporting Files"; 126 | sourceTree = ""; 127 | }; 128 | 93BF7907141D6ED000EF7849 /* SOCKit */ = { 129 | isa = PBXGroup; 130 | children = ( 131 | 93BF7908141D6EDC00EF7849 /* SOCKit.h */, 132 | 93BF7909141D6EDC00EF7849 /* SOCKit.m */, 133 | ); 134 | name = SOCKit; 135 | sourceTree = ""; 136 | }; 137 | 93BF790B141D6EE200EF7849 /* ABRouter */ = { 138 | isa = PBXGroup; 139 | children = ( 140 | 93BF790C141D6EE200EF7849 /* ABRouter.h */, 141 | 93BF790D141D6EE200EF7849 /* ABRouter.m */, 142 | ); 143 | name = ABRouter; 144 | path = ../ABRouter; 145 | sourceTree = ""; 146 | }; 147 | /* End PBXGroup section */ 148 | 149 | /* Begin PBXNativeTarget section */ 150 | 93BF78E2141D6EBA00EF7849 /* MappingExample */ = { 151 | isa = PBXNativeTarget; 152 | buildConfigurationList = 93BF7904141D6EBA00EF7849 /* Build configuration list for PBXNativeTarget "MappingExample" */; 153 | buildPhases = ( 154 | 93BF78DF141D6EBA00EF7849 /* Sources */, 155 | 93BF78E0141D6EBA00EF7849 /* Frameworks */, 156 | 93BF78E1141D6EBA00EF7849 /* Resources */, 157 | ); 158 | buildRules = ( 159 | ); 160 | dependencies = ( 161 | ); 162 | name = MappingExample; 163 | productName = MappingExample; 164 | productReference = 93BF78E3141D6EBA00EF7849 /* MappingExample.app */; 165 | productType = "com.apple.product-type.application"; 166 | }; 167 | /* End PBXNativeTarget section */ 168 | 169 | /* Begin PBXProject section */ 170 | 93BF78DA141D6EBA00EF7849 /* Project object */ = { 171 | isa = PBXProject; 172 | attributes = { 173 | ORGANIZATIONNAME = "Structlab LLC"; 174 | }; 175 | buildConfigurationList = 93BF78DD141D6EBA00EF7849 /* Build configuration list for PBXProject "MappingExample" */; 176 | compatibilityVersion = "Xcode 3.2"; 177 | developmentRegion = English; 178 | hasScannedForEncodings = 0; 179 | knownRegions = ( 180 | en, 181 | ); 182 | mainGroup = 93BF78D8141D6EBA00EF7849; 183 | productRefGroup = 93BF78E4141D6EBA00EF7849 /* Products */; 184 | projectDirPath = ""; 185 | projectRoot = ""; 186 | targets = ( 187 | 93BF78E2141D6EBA00EF7849 /* MappingExample */, 188 | ); 189 | }; 190 | /* End PBXProject section */ 191 | 192 | /* Begin PBXResourcesBuildPhase section */ 193 | 93BF78E1141D6EBA00EF7849 /* Resources */ = { 194 | isa = PBXResourcesBuildPhase; 195 | buildActionMask = 2147483647; 196 | files = ( 197 | 93BF78F2141D6EBA00EF7849 /* InfoPlist.strings in Resources */, 198 | 93BF78FB141D6EBA00EF7849 /* MainWindow.xib in Resources */, 199 | 93BF7901141D6EBA00EF7849 /* RootViewController.xib in Resources */, 200 | 93BF7913141D6F2100EF7849 /* MapViewController.xib in Resources */, 201 | ); 202 | runOnlyForDeploymentPostprocessing = 0; 203 | }; 204 | /* End PBXResourcesBuildPhase section */ 205 | 206 | /* Begin PBXSourcesBuildPhase section */ 207 | 93BF78DF141D6EBA00EF7849 /* Sources */ = { 208 | isa = PBXSourcesBuildPhase; 209 | buildActionMask = 2147483647; 210 | files = ( 211 | 93BF78F4141D6EBA00EF7849 /* main.m in Sources */, 212 | 93BF78F8141D6EBA00EF7849 /* MappingExampleAppDelegate.m in Sources */, 213 | 93BF78FE141D6EBA00EF7849 /* RootViewController.m in Sources */, 214 | 93BF790A141D6EDC00EF7849 /* SOCKit.m in Sources */, 215 | 93BF790E141D6EE200EF7849 /* ABRouter.m in Sources */, 216 | 93BF7912141D6F2100EF7849 /* MapViewController.m in Sources */, 217 | ); 218 | runOnlyForDeploymentPostprocessing = 0; 219 | }; 220 | /* End PBXSourcesBuildPhase section */ 221 | 222 | /* Begin PBXVariantGroup section */ 223 | 93BF78F0141D6EBA00EF7849 /* InfoPlist.strings */ = { 224 | isa = PBXVariantGroup; 225 | children = ( 226 | 93BF78F1141D6EBA00EF7849 /* en */, 227 | ); 228 | name = InfoPlist.strings; 229 | sourceTree = ""; 230 | }; 231 | 93BF78F9141D6EBA00EF7849 /* MainWindow.xib */ = { 232 | isa = PBXVariantGroup; 233 | children = ( 234 | 93BF78FA141D6EBA00EF7849 /* en */, 235 | ); 236 | name = MainWindow.xib; 237 | sourceTree = ""; 238 | }; 239 | 93BF78FF141D6EBA00EF7849 /* RootViewController.xib */ = { 240 | isa = PBXVariantGroup; 241 | children = ( 242 | 93BF7900141D6EBA00EF7849 /* en */, 243 | ); 244 | name = RootViewController.xib; 245 | sourceTree = ""; 246 | }; 247 | /* End PBXVariantGroup section */ 248 | 249 | /* Begin XCBuildConfiguration section */ 250 | 93BF7902141D6EBA00EF7849 /* Debug */ = { 251 | isa = XCBuildConfiguration; 252 | buildSettings = { 253 | ALWAYS_SEARCH_USER_PATHS = NO; 254 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 255 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 256 | COPY_PHASE_STRIP = NO; 257 | GCC_C_LANGUAGE_STANDARD = gnu99; 258 | GCC_DYNAMIC_NO_PIC = NO; 259 | GCC_OPTIMIZATION_LEVEL = 0; 260 | GCC_PREPROCESSOR_DEFINITIONS = ( 261 | "DEBUG=1", 262 | "$(inherited)", 263 | ); 264 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 265 | GCC_VERSION = com.apple.compilers.llvmgcc42; 266 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 267 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 268 | GCC_WARN_UNUSED_VARIABLE = YES; 269 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 270 | SDKROOT = iphoneos; 271 | }; 272 | name = Debug; 273 | }; 274 | 93BF7903141D6EBA00EF7849 /* Release */ = { 275 | isa = XCBuildConfiguration; 276 | buildSettings = { 277 | ALWAYS_SEARCH_USER_PATHS = NO; 278 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 279 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 280 | COPY_PHASE_STRIP = YES; 281 | GCC_C_LANGUAGE_STANDARD = gnu99; 282 | GCC_VERSION = com.apple.compilers.llvmgcc42; 283 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 284 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 285 | GCC_WARN_UNUSED_VARIABLE = YES; 286 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 287 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 288 | SDKROOT = iphoneos; 289 | VALIDATE_PRODUCT = YES; 290 | }; 291 | name = Release; 292 | }; 293 | 93BF7905141D6EBA00EF7849 /* Debug */ = { 294 | isa = XCBuildConfiguration; 295 | buildSettings = { 296 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 297 | GCC_PREFIX_HEADER = "MappingExample/MappingExample-Prefix.pch"; 298 | INFOPLIST_FILE = "MappingExample/MappingExample-Info.plist"; 299 | PRODUCT_NAME = "$(TARGET_NAME)"; 300 | WRAPPER_EXTENSION = app; 301 | }; 302 | name = Debug; 303 | }; 304 | 93BF7906141D6EBA00EF7849 /* Release */ = { 305 | isa = XCBuildConfiguration; 306 | buildSettings = { 307 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 308 | GCC_PREFIX_HEADER = "MappingExample/MappingExample-Prefix.pch"; 309 | INFOPLIST_FILE = "MappingExample/MappingExample-Info.plist"; 310 | PRODUCT_NAME = "$(TARGET_NAME)"; 311 | WRAPPER_EXTENSION = app; 312 | }; 313 | name = Release; 314 | }; 315 | /* End XCBuildConfiguration section */ 316 | 317 | /* Begin XCConfigurationList section */ 318 | 93BF78DD141D6EBA00EF7849 /* Build configuration list for PBXProject "MappingExample" */ = { 319 | isa = XCConfigurationList; 320 | buildConfigurations = ( 321 | 93BF7902141D6EBA00EF7849 /* Debug */, 322 | 93BF7903141D6EBA00EF7849 /* Release */, 323 | ); 324 | defaultConfigurationIsVisible = 0; 325 | defaultConfigurationName = Release; 326 | }; 327 | 93BF7904141D6EBA00EF7849 /* Build configuration list for PBXNativeTarget "MappingExample" */ = { 328 | isa = XCConfigurationList; 329 | buildConfigurations = ( 330 | 93BF7905141D6EBA00EF7849 /* Debug */, 331 | 93BF7906141D6EBA00EF7849 /* Release */, 332 | ); 333 | defaultConfigurationIsVisible = 0; 334 | }; 335 | /* End XCConfigurationList section */ 336 | }; 337 | rootObject = 93BF78DA141D6EBA00EF7849 /* Project object */; 338 | } 339 | -------------------------------------------------------------------------------- /Example.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 9305BF7E1414568D0052A06F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9305BF7D1414568D0052A06F /* UIKit.framework */; }; 11 | 9305BF801414568D0052A06F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9305BF7F1414568D0052A06F /* Foundation.framework */; }; 12 | 9305BF821414568D0052A06F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9305BF811414568D0052A06F /* CoreGraphics.framework */; }; 13 | 9305BF881414568D0052A06F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9305BF861414568D0052A06F /* InfoPlist.strings */; }; 14 | 9305BF8A1414568D0052A06F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9305BF891414568D0052A06F /* main.m */; }; 15 | 9305BF8E1414568D0052A06F /* ExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9305BF8D1414568D0052A06F /* ExampleAppDelegate.m */; }; 16 | 9305BF911414568D0052A06F /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9305BF8F1414568D0052A06F /* MainWindow.xib */; }; 17 | 9305BF9E141456A70052A06F /* ABRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9305BF9D141456A70052A06F /* ABRouter.m */; }; 18 | 9305BFA3141456DF0052A06F /* SOCKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 9305BFA2141456DF0052A06F /* SOCKit.m */; }; 19 | 9305BFA8141459370052A06F /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9305BFA6141459370052A06F /* RootViewController.m */; }; 20 | 9305BFA9141459370052A06F /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9305BFA7141459370052A06F /* RootViewController.xib */; }; 21 | 9305BFAD1414594C0052A06F /* PhotoListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9305BFAB1414594C0052A06F /* PhotoListViewController.m */; }; 22 | 9305BFAE1414594C0052A06F /* PhotoListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9305BFAC1414594C0052A06F /* PhotoListViewController.xib */; }; 23 | 9305BFB2141459580052A06F /* PhotoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9305BFB0141459580052A06F /* PhotoViewController.m */; }; 24 | 9305BFB3141459580052A06F /* PhotoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9305BFB1141459580052A06F /* PhotoViewController.xib */; }; 25 | 9305BFB7141459690052A06F /* AlbumListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9305BFB5141459690052A06F /* AlbumListViewController.m */; }; 26 | 9305BFB8141459690052A06F /* AlbumListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9305BFB6141459690052A06F /* AlbumListViewController.xib */; }; 27 | /* End PBXBuildFile section */ 28 | 29 | /* Begin PBXFileReference section */ 30 | 9305BF791414568D0052A06F /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 31 | 9305BF7D1414568D0052A06F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 32 | 9305BF7F1414568D0052A06F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 33 | 9305BF811414568D0052A06F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 34 | 9305BF851414568D0052A06F /* Example-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Example-Info.plist"; sourceTree = ""; }; 35 | 9305BF871414568D0052A06F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 36 | 9305BF891414568D0052A06F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 37 | 9305BF8B1414568D0052A06F /* Example-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Example-Prefix.pch"; sourceTree = ""; }; 38 | 9305BF8C1414568D0052A06F /* ExampleAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExampleAppDelegate.h; sourceTree = ""; }; 39 | 9305BF8D1414568D0052A06F /* ExampleAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExampleAppDelegate.m; sourceTree = ""; }; 40 | 9305BF901414568D0052A06F /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; }; 41 | 9305BF9C141456A70052A06F /* ABRouter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ABRouter.h; sourceTree = ""; }; 42 | 9305BF9D141456A70052A06F /* ABRouter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ABRouter.m; sourceTree = ""; }; 43 | 9305BFA1141456DF0052A06F /* SOCKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SOCKit.h; path = SOCKit/SOCKit.h; sourceTree = ""; }; 44 | 9305BFA2141456DF0052A06F /* SOCKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SOCKit.m; path = SOCKit/SOCKit.m; sourceTree = ""; }; 45 | 9305BFA5141459370052A06F /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = ""; }; 46 | 9305BFA6141459370052A06F /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = ""; }; 47 | 9305BFA7141459370052A06F /* RootViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = ""; }; 48 | 9305BFAA1414594C0052A06F /* PhotoListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhotoListViewController.h; sourceTree = ""; }; 49 | 9305BFAB1414594C0052A06F /* PhotoListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhotoListViewController.m; sourceTree = ""; }; 50 | 9305BFAC1414594C0052A06F /* PhotoListViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PhotoListViewController.xib; sourceTree = ""; }; 51 | 9305BFAF141459580052A06F /* PhotoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhotoViewController.h; sourceTree = ""; }; 52 | 9305BFB0141459580052A06F /* PhotoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhotoViewController.m; sourceTree = ""; }; 53 | 9305BFB1141459580052A06F /* PhotoViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PhotoViewController.xib; sourceTree = ""; }; 54 | 9305BFB4141459690052A06F /* AlbumListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlbumListViewController.h; sourceTree = ""; }; 55 | 9305BFB5141459690052A06F /* AlbumListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlbumListViewController.m; sourceTree = ""; }; 56 | 9305BFB6141459690052A06F /* AlbumListViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AlbumListViewController.xib; sourceTree = ""; }; 57 | /* End PBXFileReference section */ 58 | 59 | /* Begin PBXFrameworksBuildPhase section */ 60 | 9305BF761414568D0052A06F /* Frameworks */ = { 61 | isa = PBXFrameworksBuildPhase; 62 | buildActionMask = 2147483647; 63 | files = ( 64 | 9305BF7E1414568D0052A06F /* UIKit.framework in Frameworks */, 65 | 9305BF801414568D0052A06F /* Foundation.framework in Frameworks */, 66 | 9305BF821414568D0052A06F /* CoreGraphics.framework in Frameworks */, 67 | ); 68 | runOnlyForDeploymentPostprocessing = 0; 69 | }; 70 | /* End PBXFrameworksBuildPhase section */ 71 | 72 | /* Begin PBXGroup section */ 73 | 9305BF6E1414568D0052A06F = { 74 | isa = PBXGroup; 75 | children = ( 76 | 9305BFA0141456D60052A06F /* SOCKit */, 77 | 9305BF9B141456A70052A06F /* ABRouter */, 78 | 9305BF831414568D0052A06F /* Example */, 79 | 9305BF7C1414568D0052A06F /* Frameworks */, 80 | 9305BF7A1414568D0052A06F /* Products */, 81 | ); 82 | sourceTree = ""; 83 | }; 84 | 9305BF7A1414568D0052A06F /* Products */ = { 85 | isa = PBXGroup; 86 | children = ( 87 | 9305BF791414568D0052A06F /* Example.app */, 88 | ); 89 | name = Products; 90 | sourceTree = ""; 91 | }; 92 | 9305BF7C1414568D0052A06F /* Frameworks */ = { 93 | isa = PBXGroup; 94 | children = ( 95 | 9305BF7D1414568D0052A06F /* UIKit.framework */, 96 | 9305BF7F1414568D0052A06F /* Foundation.framework */, 97 | 9305BF811414568D0052A06F /* CoreGraphics.framework */, 98 | ); 99 | name = Frameworks; 100 | sourceTree = ""; 101 | }; 102 | 9305BF831414568D0052A06F /* Example */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | 9305BFA4141459200052A06F /* View Controllers */, 106 | 9305BF8C1414568D0052A06F /* ExampleAppDelegate.h */, 107 | 9305BF8D1414568D0052A06F /* ExampleAppDelegate.m */, 108 | 9305BF8F1414568D0052A06F /* MainWindow.xib */, 109 | 9305BF841414568D0052A06F /* Supporting Files */, 110 | ); 111 | path = Example; 112 | sourceTree = ""; 113 | }; 114 | 9305BF841414568D0052A06F /* Supporting Files */ = { 115 | isa = PBXGroup; 116 | children = ( 117 | 9305BF851414568D0052A06F /* Example-Info.plist */, 118 | 9305BF861414568D0052A06F /* InfoPlist.strings */, 119 | 9305BF891414568D0052A06F /* main.m */, 120 | 9305BF8B1414568D0052A06F /* Example-Prefix.pch */, 121 | ); 122 | name = "Supporting Files"; 123 | sourceTree = ""; 124 | }; 125 | 9305BF9B141456A70052A06F /* ABRouter */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 9305BF9C141456A70052A06F /* ABRouter.h */, 129 | 9305BF9D141456A70052A06F /* ABRouter.m */, 130 | ); 131 | path = ABRouter; 132 | sourceTree = ""; 133 | }; 134 | 9305BFA0141456D60052A06F /* SOCKit */ = { 135 | isa = PBXGroup; 136 | children = ( 137 | 9305BFA1141456DF0052A06F /* SOCKit.h */, 138 | 9305BFA2141456DF0052A06F /* SOCKit.m */, 139 | ); 140 | name = SOCKit; 141 | sourceTree = ""; 142 | }; 143 | 9305BFA4141459200052A06F /* View Controllers */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | 9305BFA5141459370052A06F /* RootViewController.h */, 147 | 9305BFA6141459370052A06F /* RootViewController.m */, 148 | 9305BFA7141459370052A06F /* RootViewController.xib */, 149 | 9305BFAA1414594C0052A06F /* PhotoListViewController.h */, 150 | 9305BFAB1414594C0052A06F /* PhotoListViewController.m */, 151 | 9305BFAC1414594C0052A06F /* PhotoListViewController.xib */, 152 | 9305BFAF141459580052A06F /* PhotoViewController.h */, 153 | 9305BFB0141459580052A06F /* PhotoViewController.m */, 154 | 9305BFB1141459580052A06F /* PhotoViewController.xib */, 155 | 9305BFB4141459690052A06F /* AlbumListViewController.h */, 156 | 9305BFB5141459690052A06F /* AlbumListViewController.m */, 157 | 9305BFB6141459690052A06F /* AlbumListViewController.xib */, 158 | ); 159 | path = "View Controllers"; 160 | sourceTree = ""; 161 | }; 162 | /* End PBXGroup section */ 163 | 164 | /* Begin PBXNativeTarget section */ 165 | 9305BF781414568D0052A06F /* Example */ = { 166 | isa = PBXNativeTarget; 167 | buildConfigurationList = 9305BF941414568D0052A06F /* Build configuration list for PBXNativeTarget "Example" */; 168 | buildPhases = ( 169 | 9305BF751414568D0052A06F /* Sources */, 170 | 9305BF761414568D0052A06F /* Frameworks */, 171 | 9305BF771414568D0052A06F /* Resources */, 172 | ); 173 | buildRules = ( 174 | ); 175 | dependencies = ( 176 | ); 177 | name = Example; 178 | productName = Example; 179 | productReference = 9305BF791414568D0052A06F /* Example.app */; 180 | productType = "com.apple.product-type.application"; 181 | }; 182 | /* End PBXNativeTarget section */ 183 | 184 | /* Begin PBXProject section */ 185 | 9305BF701414568D0052A06F /* Project object */ = { 186 | isa = PBXProject; 187 | attributes = { 188 | ORGANIZATIONNAME = "Structlab LLC"; 189 | }; 190 | buildConfigurationList = 9305BF731414568D0052A06F /* Build configuration list for PBXProject "Example" */; 191 | compatibilityVersion = "Xcode 3.2"; 192 | developmentRegion = English; 193 | hasScannedForEncodings = 0; 194 | knownRegions = ( 195 | en, 196 | ); 197 | mainGroup = 9305BF6E1414568D0052A06F; 198 | productRefGroup = 9305BF7A1414568D0052A06F /* Products */; 199 | projectDirPath = ""; 200 | projectRoot = ""; 201 | targets = ( 202 | 9305BF781414568D0052A06F /* Example */, 203 | ); 204 | }; 205 | /* End PBXProject section */ 206 | 207 | /* Begin PBXResourcesBuildPhase section */ 208 | 9305BF771414568D0052A06F /* Resources */ = { 209 | isa = PBXResourcesBuildPhase; 210 | buildActionMask = 2147483647; 211 | files = ( 212 | 9305BF881414568D0052A06F /* InfoPlist.strings in Resources */, 213 | 9305BF911414568D0052A06F /* MainWindow.xib in Resources */, 214 | 9305BFA9141459370052A06F /* RootViewController.xib in Resources */, 215 | 9305BFAE1414594C0052A06F /* PhotoListViewController.xib in Resources */, 216 | 9305BFB3141459580052A06F /* PhotoViewController.xib in Resources */, 217 | 9305BFB8141459690052A06F /* AlbumListViewController.xib in Resources */, 218 | ); 219 | runOnlyForDeploymentPostprocessing = 0; 220 | }; 221 | /* End PBXResourcesBuildPhase section */ 222 | 223 | /* Begin PBXSourcesBuildPhase section */ 224 | 9305BF751414568D0052A06F /* Sources */ = { 225 | isa = PBXSourcesBuildPhase; 226 | buildActionMask = 2147483647; 227 | files = ( 228 | 9305BF8A1414568D0052A06F /* main.m in Sources */, 229 | 9305BF8E1414568D0052A06F /* ExampleAppDelegate.m in Sources */, 230 | 9305BF9E141456A70052A06F /* ABRouter.m in Sources */, 231 | 9305BFA3141456DF0052A06F /* SOCKit.m in Sources */, 232 | 9305BFA8141459370052A06F /* RootViewController.m in Sources */, 233 | 9305BFAD1414594C0052A06F /* PhotoListViewController.m in Sources */, 234 | 9305BFB2141459580052A06F /* PhotoViewController.m in Sources */, 235 | 9305BFB7141459690052A06F /* AlbumListViewController.m in Sources */, 236 | ); 237 | runOnlyForDeploymentPostprocessing = 0; 238 | }; 239 | /* End PBXSourcesBuildPhase section */ 240 | 241 | /* Begin PBXVariantGroup section */ 242 | 9305BF861414568D0052A06F /* InfoPlist.strings */ = { 243 | isa = PBXVariantGroup; 244 | children = ( 245 | 9305BF871414568D0052A06F /* en */, 246 | ); 247 | name = InfoPlist.strings; 248 | sourceTree = ""; 249 | }; 250 | 9305BF8F1414568D0052A06F /* MainWindow.xib */ = { 251 | isa = PBXVariantGroup; 252 | children = ( 253 | 9305BF901414568D0052A06F /* en */, 254 | ); 255 | name = MainWindow.xib; 256 | sourceTree = ""; 257 | }; 258 | /* End PBXVariantGroup section */ 259 | 260 | /* Begin XCBuildConfiguration section */ 261 | 9305BF921414568D0052A06F /* Debug */ = { 262 | isa = XCBuildConfiguration; 263 | buildSettings = { 264 | ALWAYS_SEARCH_USER_PATHS = NO; 265 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 266 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 267 | COPY_PHASE_STRIP = NO; 268 | GCC_C_LANGUAGE_STANDARD = gnu99; 269 | GCC_DYNAMIC_NO_PIC = NO; 270 | GCC_OPTIMIZATION_LEVEL = 0; 271 | GCC_PREPROCESSOR_DEFINITIONS = ( 272 | "DEBUG=1", 273 | "$(inherited)", 274 | ); 275 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 276 | GCC_VERSION = com.apple.compilers.llvmgcc42; 277 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 278 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 279 | GCC_WARN_UNUSED_VARIABLE = YES; 280 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 281 | SDKROOT = iphoneos; 282 | }; 283 | name = Debug; 284 | }; 285 | 9305BF931414568D0052A06F /* Release */ = { 286 | isa = XCBuildConfiguration; 287 | buildSettings = { 288 | ALWAYS_SEARCH_USER_PATHS = NO; 289 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 290 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 291 | COPY_PHASE_STRIP = YES; 292 | GCC_C_LANGUAGE_STANDARD = gnu99; 293 | GCC_VERSION = com.apple.compilers.llvmgcc42; 294 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 295 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 296 | GCC_WARN_UNUSED_VARIABLE = YES; 297 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 298 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 299 | SDKROOT = iphoneos; 300 | VALIDATE_PRODUCT = YES; 301 | }; 302 | name = Release; 303 | }; 304 | 9305BF951414568D0052A06F /* Debug */ = { 305 | isa = XCBuildConfiguration; 306 | buildSettings = { 307 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 308 | GCC_PREFIX_HEADER = "Example/Example-Prefix.pch"; 309 | INFOPLIST_FILE = "Example/Example-Info.plist"; 310 | PRODUCT_NAME = "$(TARGET_NAME)"; 311 | WRAPPER_EXTENSION = app; 312 | }; 313 | name = Debug; 314 | }; 315 | 9305BF961414568D0052A06F /* Release */ = { 316 | isa = XCBuildConfiguration; 317 | buildSettings = { 318 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 319 | GCC_PREFIX_HEADER = "Example/Example-Prefix.pch"; 320 | INFOPLIST_FILE = "Example/Example-Info.plist"; 321 | PRODUCT_NAME = "$(TARGET_NAME)"; 322 | WRAPPER_EXTENSION = app; 323 | }; 324 | name = Release; 325 | }; 326 | /* End XCBuildConfiguration section */ 327 | 328 | /* Begin XCConfigurationList section */ 329 | 9305BF731414568D0052A06F /* Build configuration list for PBXProject "Example" */ = { 330 | isa = XCConfigurationList; 331 | buildConfigurations = ( 332 | 9305BF921414568D0052A06F /* Debug */, 333 | 9305BF931414568D0052A06F /* Release */, 334 | ); 335 | defaultConfigurationIsVisible = 0; 336 | defaultConfigurationName = Release; 337 | }; 338 | 9305BF941414568D0052A06F /* Build configuration list for PBXNativeTarget "Example" */ = { 339 | isa = XCConfigurationList; 340 | buildConfigurations = ( 341 | 9305BF951414568D0052A06F /* Debug */, 342 | 9305BF961414568D0052A06F /* Release */, 343 | ); 344 | defaultConfigurationIsVisible = 0; 345 | defaultConfigurationName = Release; 346 | }; 347 | /* End XCConfigurationList section */ 348 | }; 349 | rootObject = 9305BF701414568D0052A06F /* Project object */; 350 | } 351 | -------------------------------------------------------------------------------- /MappingExample/MappingExample/en.lproj/RootViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 784 5 | 10D541 6 | 760 7 | 1038.29 8 | 460.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 81 12 | 13 | 14 | YES 15 | 16 | 17 | 18 | YES 19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 20 | 21 | 22 | YES 23 | 24 | YES 25 | 26 | 27 | YES 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | 42 | 274 43 | {320, 247} 44 | 45 | 46 | 3 47 | MQA 48 | 49 | NO 50 | YES 51 | NO 52 | IBCocoaTouchFramework 53 | NO 54 | 1 55 | 0 56 | YES 57 | 44 58 | 22 59 | 22 60 | 61 | 62 | 63 | 64 | YES 65 | 66 | 67 | view 68 | 69 | 70 | 71 | 3 72 | 73 | 74 | 75 | dataSource 76 | 77 | 78 | 79 | 4 80 | 81 | 82 | 83 | delegate 84 | 85 | 86 | 87 | 5 88 | 89 | 90 | 91 | 92 | YES 93 | 94 | 0 95 | 96 | 97 | 98 | 99 | 100 | -1 101 | 102 | 103 | File's Owner 104 | 105 | 106 | -2 107 | 108 | 109 | 110 | 111 | 2 112 | 113 | 114 | 115 | 116 | 117 | 118 | YES 119 | 120 | YES 121 | -1.CustomClassName 122 | -2.CustomClassName 123 | 2.IBEditorWindowLastContentRect 124 | 2.IBPluginDependency 125 | 126 | 127 | YES 128 | RootViewController 129 | UIResponder 130 | {{144, 609}, {320, 247}} 131 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 132 | 133 | 134 | 135 | YES 136 | 137 | 138 | YES 139 | 140 | 141 | 142 | 143 | YES 144 | 145 | 146 | YES 147 | 148 | 149 | 150 | 5 151 | 152 | 153 | 154 | YES 155 | 156 | RootViewController 157 | UITableViewController 158 | 159 | IBProjectSource 160 | RootViewController.h 161 | 162 | 163 | 164 | 165 | YES 166 | 167 | NSObject 168 | 169 | IBFrameworkSource 170 | Foundation.framework/Headers/NSError.h 171 | 172 | 173 | 174 | NSObject 175 | 176 | IBFrameworkSource 177 | Foundation.framework/Headers/NSFileManager.h 178 | 179 | 180 | 181 | NSObject 182 | 183 | IBFrameworkSource 184 | Foundation.framework/Headers/NSKeyValueCoding.h 185 | 186 | 187 | 188 | NSObject 189 | 190 | IBFrameworkSource 191 | Foundation.framework/Headers/NSKeyValueObserving.h 192 | 193 | 194 | 195 | NSObject 196 | 197 | IBFrameworkSource 198 | Foundation.framework/Headers/NSKeyedArchiver.h 199 | 200 | 201 | 202 | NSObject 203 | 204 | IBFrameworkSource 205 | Foundation.framework/Headers/NSNetServices.h 206 | 207 | 208 | 209 | NSObject 210 | 211 | IBFrameworkSource 212 | Foundation.framework/Headers/NSObject.h 213 | 214 | 215 | 216 | NSObject 217 | 218 | IBFrameworkSource 219 | Foundation.framework/Headers/NSPort.h 220 | 221 | 222 | 223 | NSObject 224 | 225 | IBFrameworkSource 226 | Foundation.framework/Headers/NSRunLoop.h 227 | 228 | 229 | 230 | NSObject 231 | 232 | IBFrameworkSource 233 | Foundation.framework/Headers/NSStream.h 234 | 235 | 236 | 237 | NSObject 238 | 239 | IBFrameworkSource 240 | Foundation.framework/Headers/NSThread.h 241 | 242 | 243 | 244 | NSObject 245 | 246 | IBFrameworkSource 247 | Foundation.framework/Headers/NSURL.h 248 | 249 | 250 | 251 | NSObject 252 | 253 | IBFrameworkSource 254 | Foundation.framework/Headers/NSURLConnection.h 255 | 256 | 257 | 258 | NSObject 259 | 260 | IBFrameworkSource 261 | Foundation.framework/Headers/NSXMLParser.h 262 | 263 | 264 | 265 | NSObject 266 | 267 | IBFrameworkSource 268 | UIKit.framework/Headers/UIAccessibility.h 269 | 270 | 271 | 272 | NSObject 273 | 274 | IBFrameworkSource 275 | UIKit.framework/Headers/UINibLoading.h 276 | 277 | 278 | 279 | NSObject 280 | 281 | IBFrameworkSource 282 | UIKit.framework/Headers/UIResponder.h 283 | 284 | 285 | 286 | UIResponder 287 | NSObject 288 | 289 | 290 | 291 | UIScrollView 292 | UIView 293 | 294 | IBFrameworkSource 295 | UIKit.framework/Headers/UIScrollView.h 296 | 297 | 298 | 299 | UISearchBar 300 | UIView 301 | 302 | IBFrameworkSource 303 | UIKit.framework/Headers/UISearchBar.h 304 | 305 | 306 | 307 | UISearchDisplayController 308 | NSObject 309 | 310 | IBFrameworkSource 311 | UIKit.framework/Headers/UISearchDisplayController.h 312 | 313 | 314 | 315 | UITableView 316 | UIScrollView 317 | 318 | IBFrameworkSource 319 | UIKit.framework/Headers/UITableView.h 320 | 321 | 322 | 323 | UITableViewController 324 | UIViewController 325 | 326 | IBFrameworkSource 327 | UIKit.framework/Headers/UITableViewController.h 328 | 329 | 330 | 331 | UIView 332 | 333 | IBFrameworkSource 334 | UIKit.framework/Headers/UITextField.h 335 | 336 | 337 | 338 | UIView 339 | UIResponder 340 | 341 | IBFrameworkSource 342 | UIKit.framework/Headers/UIView.h 343 | 344 | 345 | 346 | UIViewController 347 | 348 | IBFrameworkSource 349 | UIKit.framework/Headers/UINavigationController.h 350 | 351 | 352 | 353 | UIViewController 354 | 355 | IBFrameworkSource 356 | UIKit.framework/Headers/UITabBarController.h 357 | 358 | 359 | 360 | UIViewController 361 | UIResponder 362 | 363 | IBFrameworkSource 364 | UIKit.framework/Headers/UIViewController.h 365 | 366 | 367 | 368 | 369 | 0 370 | IBCocoaTouchFramework 371 | 372 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS 373 | 374 | 375 | 376 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 377 | 378 | 379 | YES 380 | MappingExample.xcodeproj 381 | 3 382 | 81 383 | 384 | 385 | -------------------------------------------------------------------------------- /GowallaExample/GowallaExample/View Controllers/SpotViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 11B26 6 | 1617 7 | 1138 8 | 566.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 534 12 | 13 | 14 | YES 15 | IBUIButton 16 | IBUIImageView 17 | IBUIView 18 | IBUILabel 19 | IBProxyObject 20 | 21 | 22 | YES 23 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 24 | 25 | 26 | YES 27 | 28 | YES 29 | 30 | 31 | 32 | 33 | YES 34 | 35 | IBFilesOwner 36 | IBCocoaTouchFramework 37 | 38 | 39 | IBFirstResponder 40 | IBCocoaTouchFramework 41 | 42 | 43 | 44 | 274 45 | 46 | YES 47 | 48 | 49 | 274 50 | {{20, 20}, {100, 100}} 51 | 52 | 53 | 54 | _NS:541 55 | 2 56 | NO 57 | IBCocoaTouchFramework 58 | 59 | 60 | 61 | 292 62 | {{142, 20}, {158, 42}} 63 | 64 | 65 | 66 | _NS:311 67 | NO 68 | YES 69 | 7 70 | NO 71 | IBCocoaTouchFramework 72 | 73 | 74 | Helvetica-Bold 75 | 17 76 | 16 77 | 78 | 79 | 1 80 | MCAwIDAAA 81 | 82 | 83 | 1 84 | 10 85 | 2 86 | 87 | 88 | 89 | 292 90 | {{20, 197}, {50, 50}} 91 | 92 | 93 | 94 | _NS:541 95 | NO 96 | IBCocoaTouchFramework 97 | 98 | 99 | 100 | 292 101 | {{78, 197}, {50, 50}} 102 | 103 | 104 | 105 | _NS:541 106 | NO 107 | IBCocoaTouchFramework 108 | 109 | 110 | 111 | 292 112 | {{135, 197}, {50, 50}} 113 | 114 | 115 | 116 | _NS:541 117 | NO 118 | IBCocoaTouchFramework 119 | 120 | 121 | 122 | 292 123 | {{193, 197}, {50, 50}} 124 | 125 | 126 | 127 | _NS:541 128 | NO 129 | IBCocoaTouchFramework 130 | 131 | 132 | 133 | 292 134 | {{250, 197}, {50, 50}} 135 | 136 | 137 | 138 | _NS:541 139 | NO 140 | IBCocoaTouchFramework 141 | 142 | 143 | 144 | 292 145 | {{20, 140}, {280, 37}} 146 | 147 | 148 | 149 | _NS:222 150 | NO 151 | IBCocoaTouchFramework 152 | 0 153 | 0 154 | 155 | Helvetica-Bold 156 | 15 157 | 16 158 | 159 | 1 160 | View Checkins 161 | 162 | 3 163 | MQA 164 | 165 | 166 | 1 167 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 168 | 169 | 170 | 3 171 | MC41AA 172 | 173 | 174 | 175 | {{0, 20}, {320, 460}} 176 | 177 | 178 | 179 | 180 | 3 181 | MQA 182 | 183 | 2 184 | 185 | 186 | 187 | IBCocoaTouchFramework 188 | 189 | 190 | 191 | 192 | YES 193 | 194 | 195 | categoryImage 196 | 197 | 198 | 199 | 8 200 | 201 | 202 | 203 | businessName 204 | 205 | 206 | 207 | 10 208 | 209 | 210 | 211 | view 212 | 213 | 214 | 215 | 11 216 | 217 | 218 | 219 | photoOne 220 | 221 | 222 | 223 | 17 224 | 225 | 226 | 227 | photoTwo 228 | 229 | 230 | 231 | 18 232 | 233 | 234 | 235 | photoThree 236 | 237 | 238 | 239 | 19 240 | 241 | 242 | 243 | photoFour 244 | 245 | 246 | 247 | 20 248 | 249 | 250 | 251 | photoFive 252 | 253 | 254 | 255 | 21 256 | 257 | 258 | 259 | viewCheckins: 260 | 261 | 262 | 7 263 | 264 | 23 265 | 266 | 267 | 268 | 269 | YES 270 | 271 | 0 272 | 273 | 274 | 275 | 276 | 277 | 1 278 | 279 | 280 | YES 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | -1 294 | 295 | 296 | File's Owner 297 | 298 | 299 | -2 300 | 301 | 302 | 303 | 304 | 5 305 | 306 | 307 | 308 | 309 | 7 310 | 311 | 312 | 313 | 314 | 12 315 | 316 | 317 | 318 | 319 | 13 320 | 321 | 322 | 323 | 324 | 14 325 | 326 | 327 | 328 | 329 | 15 330 | 331 | 332 | 333 | 334 | 16 335 | 336 | 337 | 338 | 339 | 22 340 | 341 | 342 | 343 | 344 | 345 | 346 | YES 347 | 348 | YES 349 | -1.CustomClassName 350 | -1.IBPluginDependency 351 | -2.CustomClassName 352 | -2.IBPluginDependency 353 | 1.IBPluginDependency 354 | 12.IBPluginDependency 355 | 13.IBPluginDependency 356 | 14.IBPluginDependency 357 | 15.IBPluginDependency 358 | 16.IBPluginDependency 359 | 22.IBPluginDependency 360 | 5.IBPluginDependency 361 | 7.IBPluginDependency 362 | 363 | 364 | YES 365 | SpotViewController 366 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 367 | UIResponder 368 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 369 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 370 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 371 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 372 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 373 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 374 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 375 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 376 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 377 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 378 | 379 | 380 | 381 | YES 382 | 383 | 384 | 385 | 386 | 387 | YES 388 | 389 | 390 | 391 | 392 | 23 393 | 394 | 395 | 396 | YES 397 | 398 | SpotViewController 399 | UIViewController 400 | 401 | viewCheckins: 402 | id 403 | 404 | 405 | viewCheckins: 406 | 407 | viewCheckins: 408 | id 409 | 410 | 411 | 412 | YES 413 | 414 | YES 415 | businessName 416 | categoryImage 417 | photoFive 418 | photoFour 419 | photoOne 420 | photoThree 421 | photoTwo 422 | 423 | 424 | YES 425 | UILabel 426 | UIImageView 427 | UIImageView 428 | UIImageView 429 | UIImageView 430 | UIImageView 431 | UIImageView 432 | 433 | 434 | 435 | YES 436 | 437 | YES 438 | businessName 439 | categoryImage 440 | photoFive 441 | photoFour 442 | photoOne 443 | photoThree 444 | photoTwo 445 | 446 | 447 | YES 448 | 449 | businessName 450 | UILabel 451 | 452 | 453 | categoryImage 454 | UIImageView 455 | 456 | 457 | photoFive 458 | UIImageView 459 | 460 | 461 | photoFour 462 | UIImageView 463 | 464 | 465 | photoOne 466 | UIImageView 467 | 468 | 469 | photoThree 470 | UIImageView 471 | 472 | 473 | photoTwo 474 | UIImageView 475 | 476 | 477 | 478 | 479 | IBProjectSource 480 | ./Classes/SpotViewController.h 481 | 482 | 483 | 484 | 485 | 0 486 | IBCocoaTouchFramework 487 | 488 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 489 | 490 | 491 | YES 492 | 3 493 | 534 494 | 495 | 496 | --------------------------------------------------------------------------------