├── README ├── Location.png ├── Classes ├── .DS_Store ├── DetailView.h ├── GooglemapDemoAppDelegate.h ├── MyAnnotation.h ├── MyAnnotation.m ├── GooglemapDemoViewController.h ├── DetailView.m ├── GooglemapDemoAppDelegate.m ├── GooglemapDemoViewController.m └── DetailView.xib ├── .gitignore ├── GooglemapDemo_Prefix.pch ├── GooglemapDemo.xcodeproj ├── project.xcworkspace │ └── contents.xcworkspacedata ├── project.pbxproj └── eric.mode1v3 ├── main.m ├── GooglemapDemo-Info.plist ├── GooglemapDemoViewController.xib └── MainWindow.xib /README: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samplecode/GooglemapDemo/master/Location.png -------------------------------------------------------------------------------- /Classes/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samplecode/GooglemapDemo/master/Classes/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _Store 2 | *.swp 3 | *~.nib 4 | build/ 5 | *.pbxuser 6 | *.perspective 7 | *.perspectivev3 8 | xcuserdata 9 | -------------------------------------------------------------------------------- /GooglemapDemo_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'GooglemapDemo' target in the 'GooglemapDemo' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #import 8 | #endif 9 | -------------------------------------------------------------------------------- /GooglemapDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Classes/DetailView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DetailView.h 3 | // GooglemapDemo 4 | // 5 | // Created by Miriam on 2011/10/6. 6 | // Copyright 2011年 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface DetailView : UIViewController { 13 | 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // GooglemapDemo 4 | // 5 | // Created by Eric Lin on 2010/7/22. 6 | // Copyright __MyCompanyName__ 2010. 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 | -------------------------------------------------------------------------------- /Classes/GooglemapDemoAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // GooglemapDemoAppDelegate.h 3 | // GooglemapDemo 4 | // 5 | // Created by Eric Lin on 2010/7/22. 6 | // Copyright __MyCompanyName__ 2010. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class GooglemapDemoViewController; 12 | 13 | @interface GooglemapDemoAppDelegate : NSObject { 14 | UIWindow *window; 15 | UIViewController *viewController; 16 | } 17 | 18 | @property (nonatomic, retain) IBOutlet UIWindow *window; 19 | @property (nonatomic, retain) IBOutlet UIViewController *viewController; 20 | 21 | @end 22 | 23 | -------------------------------------------------------------------------------- /Classes/MyAnnotation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MyAnnotation.h 3 | // GooglemapDemo 4 | // 5 | // Created by Miriam on 2011/10/5. 6 | // Copyright 2011年 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface MyAnnotation : NSObject { 13 | CLLocationCoordinate2D coordinate; 14 | NSString *title; 15 | NSString *subtitle; 16 | 17 | } 18 | 19 | -(id) initWithCoordinate:(CLLocationCoordinate2D)theCoordinate title:(NSString *)theTitle subtitle:(NSString *)theSubtitle; 20 | @property(nonatomic, retain) NSString *title; 21 | @property(nonatomic, retain) NSString *subtitle; 22 | @property(nonatomic) CLLocationCoordinate2D coordinate; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Classes/MyAnnotation.m: -------------------------------------------------------------------------------- 1 | // 2 | // MyAnnotation.m 3 | // GooglemapDemo 4 | // 5 | // Created by Miriam on 2011/10/5. 6 | // Copyright 2011年 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import "MyAnnotation.h" 10 | 11 | 12 | @implementation MyAnnotation 13 | 14 | @synthesize coordinate; 15 | @synthesize title; 16 | @synthesize subtitle; 17 | 18 | -(id) initWithCoordinate:(CLLocationCoordinate2D)theCoordinate title:(NSString *)theTitle subtitle:(NSString *)theSubTitle { 19 | self = [super init]; 20 | [self setCoordinate:theCoordinate]; 21 | self.title = theTitle; 22 | self.subtitle = theSubTitle; 23 | return self; 24 | } 25 | 26 | -(void)setCoordinate:(CLLocationCoordinate2D)newCoordinate { 27 | coordinate = newCoordinate; 28 | } 29 | 30 | -(void) dealloc 31 | { 32 | self.title = nil; 33 | self.subtitle = nil; 34 | [super dealloc]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Classes/GooglemapDemoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // GooglemapDemoViewController.h 3 | // GooglemapDemo 4 | // 5 | // Created by Eric Lin on 2010/7/22. 6 | // Copyright __MyCompanyName__ 2010. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @class DetailView; 13 | 14 | @interface GooglemapDemoViewController : UIViewController { 15 | CLLocationManager *locManager; 16 | IBOutlet MKMapView *mapView; 17 | UIActivityIndicatorView *busy; 18 | BOOL setup; 19 | DetailView *detailView; 20 | } 21 | 22 | @property (nonatomic, retain) IBOutlet DetailView *detailView; 23 | 24 | - (IBAction)centerToCurrentLocation:(id)sender; 25 | - (void) updateRegionForLocation:(CLLocation *) newLocation keepSpan:(BOOL) keepSpan; 26 | - (void) addPOI; 27 | - (UIImage *)reSizeImageInPath:(NSString *)path withWidth:(CGFloat)width andHeight:(CGFloat)height; 28 | @end 29 | 30 | -------------------------------------------------------------------------------- /GooglemapDemo-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | tw.com.erasoft.test 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | NSMainNibFile 28 | MainWindow 29 | 30 | 31 | -------------------------------------------------------------------------------- /Classes/DetailView.m: -------------------------------------------------------------------------------- 1 | // 2 | // DetailView.m 3 | // GooglemapDemo 4 | // 5 | // Created by Miriam on 2011/10/6. 6 | // Copyright 2011年 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import "DetailView.h" 10 | 11 | 12 | @implementation DetailView 13 | 14 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 15 | { 16 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 17 | if (self) { 18 | // Custom initialization 19 | } 20 | return self; 21 | } 22 | 23 | - (void)dealloc 24 | { 25 | [super dealloc]; 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 | // Do any additional setup after loading the view from its nib. 42 | } 43 | 44 | - (void)viewDidUnload 45 | { 46 | [super viewDidUnload]; 47 | // Release any retained subviews of the main view. 48 | // e.g. self.myOutlet = nil; 49 | } 50 | 51 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 52 | { 53 | // Return YES for supported orientations 54 | return (interfaceOrientation == UIInterfaceOrientationPortrait); 55 | } 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /Classes/GooglemapDemoAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // GooglemapDemoAppDelegate.m 3 | // GooglemapDemo 4 | // 5 | // Created by Eric Lin on 2010/7/22. 6 | // Copyright __MyCompanyName__ 2010. All rights reserved. 7 | // 8 | 9 | #import "GooglemapDemoAppDelegate.h" 10 | #import "GooglemapDemoViewController.h" 11 | 12 | @implementation GooglemapDemoAppDelegate 13 | 14 | @synthesize window; 15 | @synthesize viewController; 16 | 17 | 18 | #pragma mark - 19 | #pragma mark Application lifecycle 20 | 21 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 22 | 23 | // Override point for customization after application launch. 24 | 25 | GooglemapDemoViewController *mapViewController = [[GooglemapDemoViewController alloc] initWithNibName:@"GooglemapDemoViewController" bundle:[NSBundle bundleForClass:[GooglemapDemoViewController class]]]; 26 | 27 | UINavigationController *navCtrl = [[[UINavigationController alloc] initWithRootViewController:mapViewController] autorelease]; 28 | 29 | self.window.rootViewController = navCtrl; 30 | // Add the view controller's view to the window and display. 31 | // [window addSubview:viewController.view]; 32 | [window makeKeyAndVisible]; 33 | 34 | return YES; 35 | } 36 | 37 | 38 | - (void)applicationWillResignActive:(UIApplication *)application { 39 | /* 40 | 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. 41 | 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. 42 | */ 43 | } 44 | 45 | 46 | - (void)applicationDidEnterBackground:(UIApplication *)application { 47 | /* 48 | 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. 49 | If your application supports background execution, called instead of applicationWillTerminate: when the user quits. 50 | */ 51 | } 52 | 53 | 54 | - (void)applicationWillEnterForeground:(UIApplication *)application { 55 | /* 56 | Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background. 57 | */ 58 | } 59 | 60 | 61 | - (void)applicationDidBecomeActive:(UIApplication *)application { 62 | /* 63 | 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. 64 | */ 65 | } 66 | 67 | 68 | - (void)applicationWillTerminate:(UIApplication *)application { 69 | /* 70 | Called when the application is about to terminate. 71 | See also applicationDidEnterBackground:. 72 | */ 73 | } 74 | 75 | 76 | #pragma mark - 77 | #pragma mark Memory management 78 | 79 | - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { 80 | /* 81 | Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later. 82 | */ 83 | } 84 | 85 | 86 | - (void)dealloc { 87 | [viewController release]; 88 | [window release]; 89 | [super dealloc]; 90 | } 91 | 92 | 93 | @end 94 | -------------------------------------------------------------------------------- /Classes/GooglemapDemoViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // GooglemapDemoViewController.m 3 | // GooglemapDemo 4 | // 5 | // Created by Eric Lin on 2010/7/22. 6 | // Copyright __MyCompanyName__ 2010. All rights reserved. 7 | // 8 | 9 | #import "GooglemapDemoViewController.h" 10 | #import "MyAnnotation.h" 11 | #import "DetailView.h" 12 | 13 | @implementation GooglemapDemoViewController 14 | 15 | @synthesize detailView; 16 | 17 | /* 18 | // The designated initializer. Override to perform setup that is required before the view is loaded. 19 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 20 | if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { 21 | // Custom initialization 22 | } 23 | return self; 24 | }*/ 25 | 26 | /* 27 | // Implement loadView to create a view hierarchy programmatically, without using a nib. 28 | - (void)loadView { 29 | } 30 | */ 31 | 32 | - (void) centerPosition { 33 | // 若現在的地點在地圖上已經看不到,則將地圖的中心點設定為目前位置 34 | if( mapView.userLocation.coordinate.latitude>0 && mapView.userLocation.coordinate.longitude>0 && ![mapView isUserLocationVisible] ) { 35 | [mapView setCenterCoordinate:mapView.userLocation.coordinate animated:YES]; 36 | } 37 | } 38 | 39 | - (IBAction)centerToCurrentLocation:(id)sender { 40 | [self centerPosition]; 41 | } 42 | 43 | //////////////////////////// 44 | // MKMapViewDelegate events 45 | //////////////////////////// 46 | 47 | // 開始載入地圖時顯示等待的動畫 48 | - (void)mapViewWillStartLoadingMap:(MKMapView *) theMapView { 49 | if( busy==nil ){ 50 | busy = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 51 | busy.frame = CGRectMake(120, 180, 80, 80); 52 | [self.view addSubview:busy]; 53 | } 54 | busy.hidesWhenStopped = YES; 55 | [busy startAnimating]; 56 | } 57 | // 完全載入地圖後停止等待動畫 58 | - (void)mapViewDidFinishLoadingMap:(MKMapView *) theMapView { 59 | [busy stopAnimating]; 60 | } 61 | // 使用者位置更新後,讓現在位置置中 62 | - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { 63 | if( !setup ){ 64 | setup = YES; 65 | [self updateRegionForLocation:userLocation.location keepSpan:NO]; 66 | } else { 67 | [self updateRegionForLocation:userLocation.location keepSpan:YES]; 68 | } 69 | 70 | // 移動位置時,讓現在位置置中 71 | [self centerPosition]; 72 | } 73 | //////////////////////////// 74 | 75 | // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 76 | - (void)viewDidLoad { 77 | [super viewDidLoad]; 78 | locManager = [[CLLocationManager alloc] init]; 79 | [locManager startUpdatingLocation]; 80 | 81 | mapView.delegate = self; 82 | 83 | } 84 | 85 | // 更新顯示的視野 86 | - (void) updateRegionForLocation:(CLLocation *) newLocation keepSpan:(BOOL) keepSpan{ 87 | //指定中心點 88 | CLLocationCoordinate2D theCenter; 89 | theCenter.latitude = 25.054606; 90 | theCenter.longitude = 121.548437; 91 | 92 | MKCoordinateRegion theRegion; 93 | //移動地圖中心 94 | theRegion.center=theCenter; 95 | // theRegion.center = newLocation.coordinate; 96 | 97 | if( !keepSpan ){ 98 | MKCoordinateSpan theSpan; 99 | theSpan.latitudeDelta = 0.02; 100 | theSpan.longitudeDelta = 0.02; 101 | theRegion.span = theSpan; 102 | }else { 103 | theRegion.span = mapView.region.span; 104 | } 105 | [mapView setRegion:theRegion animated:YES]; 106 | [self addPOI]; 107 | } 108 | 109 | -(MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id )annotation 110 | { 111 | static NSString* MyAnnotationIdentifier = @"myAnnotation"; 112 | MKPinAnnotationView *pin = (MKPinAnnotationView *) [theMapView dequeueReusableAnnotationViewWithIdentifier:MyAnnotationIdentifier]; 113 | if (pin == nil) { 114 | pin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:MyAnnotationIdentifier]; 115 | pin.canShowCallout = YES; 116 | 117 | UIButton* detailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 118 | [detailButton addTarget:self 119 | action:@selector(showDetails:) 120 | forControlEvents:UIControlEventTouchUpInside]; 121 | 122 | [pin setImage:[self reSizeImageInPath:@"Location.png" withWidth:35 andHeight:40]]; 123 | pin.rightCalloutAccessoryView = detailButton; 124 | 125 | 126 | } else { 127 | pin.annotation = annotation; 128 | } 129 | 130 | return pin; 131 | } 132 | 133 | 134 | -(void)addPOI { 135 | NSMutableArray *annotations = [[NSMutableArray alloc] init]; 136 | 137 | // 建立一個CLLocationCoordinate2D 138 | CLLocationCoordinate2D coord; 139 | coord.latitude = 25.054606; 140 | coord.longitude = 121.548437; 141 | 142 | // 準備一個annotation 143 | MyAnnotation *anno = [[[MyAnnotation alloc] initWithCoordinate:coord title:@"敦化店" subtitle:@"台北市敦化北路150號"] autorelease]; 144 | 145 | // 把annotation加進MapView裡 146 | [annotations addObject:anno]; 147 | 148 | coord.latitude = 25.045792; 149 | coord.longitude = 121.546383; 150 | anno = [[[MyAnnotation alloc] initWithCoordinate:coord title:@"忠孝店" subtitle:@"台北市忠孝東路四段49巷2號"] autorelease]; 151 | 152 | [annotations addObject:anno]; 153 | 154 | [mapView addAnnotations:annotations]; 155 | 156 | [anno release]; 157 | [annotations release]; 158 | 159 | } 160 | 161 | - (void)showDetails:(id)sender 162 | { 163 | // the detail view does not want a toolbar so hide it 164 | 165 | 166 | [self.navigationController pushViewController:self.detailView animated:YES]; 167 | } 168 | 169 | - (UIImage *)reSizeImageInPath:(NSString *)path withWidth:(CGFloat)width andHeight:(CGFloat)height { 170 | UIImage *image = [UIImage imageNamed:path]; 171 | CGSize newSize = CGSizeMake(width, height); 172 | UIGraphicsBeginImageContext(newSize); 173 | [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 174 | UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 175 | UIGraphicsEndImageContext(); 176 | return newImage; 177 | } 178 | 179 | /* 180 | // Override to allow orientations other than the default portrait orientation. 181 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 182 | // Return YES for supported orientations 183 | return (interfaceOrientation == UIInterfaceOrientationPortrait); 184 | } 185 | */ 186 | 187 | - (void)didReceiveMemoryWarning { 188 | // Releases the view if it doesn't have a superview. 189 | [super didReceiveMemoryWarning]; 190 | 191 | // Release any cached data, images, etc that aren't in use. 192 | } 193 | 194 | - (void)viewDidUnload { 195 | // Release any retained subviews of the main view. 196 | // e.g. self.myOutlet = nil; 197 | } 198 | 199 | 200 | - (void)dealloc { 201 | [super dealloc]; 202 | [locManager release]; 203 | [busy release]; 204 | } 205 | 206 | @end 207 | -------------------------------------------------------------------------------- /GooglemapDemoViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1024 5 | 10K549 6 | 1306 7 | 1038.36 8 | 461.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 301 12 | 13 | 14 | YES 15 | IBUIViewController 16 | IBUIView 17 | IBMKMapView 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 | 274 49 | {{0, -69}, {320, 529}} 50 | 51 | 52 | YES 53 | YES 54 | IBCocoaTouchFramework 55 | YES 56 | 57 | 58 | {{0, 20}, {320, 460}} 59 | 60 | 61 | 62 | 63 | 3 64 | MC43NQA 65 | 66 | 2 67 | 68 | 69 | NO 70 | 71 | IBCocoaTouchFramework 72 | 73 | 74 | DetailView 75 | 76 | 77 | 1 78 | 1 79 | 80 | IBCocoaTouchFramework 81 | NO 82 | 83 | 84 | 85 | 86 | YES 87 | 88 | 89 | view 90 | 91 | 92 | 93 | 7 94 | 95 | 96 | 97 | mapView 98 | 99 | 100 | 101 | 11 102 | 103 | 104 | 105 | detailView 106 | 107 | 108 | 109 | 17 110 | 111 | 112 | 113 | 114 | YES 115 | 116 | 0 117 | 118 | 119 | 120 | 121 | 122 | -1 123 | 124 | 125 | File's Owner 126 | 127 | 128 | -2 129 | 130 | 131 | 132 | 133 | 6 134 | 135 | 136 | YES 137 | 138 | 139 | 140 | 141 | 142 | 8 143 | 144 | 145 | 146 | 147 | 16 148 | 149 | 150 | DetailView 151 | 152 | 153 | 154 | 155 | YES 156 | 157 | YES 158 | -1.CustomClassName 159 | -2.CustomClassName 160 | 16.CustomClassName 161 | 16.IBPluginDependency 162 | 6.IBEditorWindowLastContentRect 163 | 6.IBPluginDependency 164 | 8.IBPluginDependency 165 | 166 | 167 | YES 168 | GooglemapDemoViewController 169 | UIResponder 170 | DetailView 171 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 172 | {{159, 45}, {320, 480}} 173 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 174 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 175 | 176 | 177 | 178 | YES 179 | 180 | 181 | 182 | 183 | 184 | YES 185 | 186 | 187 | 188 | 189 | 17 190 | 191 | 192 | 193 | YES 194 | 195 | DetailView 196 | UIViewController 197 | 198 | IBProjectSource 199 | ./Classes/DetailView.h 200 | 201 | 202 | 203 | GooglemapDemoViewController 204 | UIViewController 205 | 206 | centerToCurrentLocation: 207 | id 208 | 209 | 210 | centerToCurrentLocation: 211 | 212 | centerToCurrentLocation: 213 | id 214 | 215 | 216 | 217 | YES 218 | 219 | YES 220 | detailView 221 | mapView 222 | 223 | 224 | YES 225 | DetailView 226 | MKMapView 227 | 228 | 229 | 230 | YES 231 | 232 | YES 233 | detailView 234 | mapView 235 | 236 | 237 | YES 238 | 239 | detailView 240 | DetailView 241 | 242 | 243 | mapView 244 | MKMapView 245 | 246 | 247 | 248 | 249 | IBProjectSource 250 | ./Classes/GooglemapDemoViewController.h 251 | 252 | 253 | 254 | 255 | 0 256 | IBCocoaTouchFramework 257 | 258 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS 259 | 260 | 261 | 262 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 263 | 264 | 265 | YES 266 | 3 267 | 301 268 | 269 | 270 | -------------------------------------------------------------------------------- /MainWindow.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1024 5 | 10K549 6 | 1306 7 | 1038.36 8 | 461.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 301 12 | 13 | 14 | YES 15 | IBProxyObject 16 | IBUINavigationController 17 | IBUIViewController 18 | IBUICustomObject 19 | IBUIWindow 20 | IBUINavigationBar 21 | IBUINavigationItem 22 | 23 | 24 | YES 25 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 26 | 27 | 28 | YES 29 | 30 | YES 31 | 32 | 33 | 34 | 35 | YES 36 | 37 | IBFilesOwner 38 | IBCocoaTouchFramework 39 | 40 | 41 | IBFirstResponder 42 | IBCocoaTouchFramework 43 | 44 | 45 | IBCocoaTouchFramework 46 | 47 | 48 | 49 | 292 50 | {320, 480} 51 | 52 | 53 | 54 | 1 55 | MSAxIDEAA 56 | 57 | NO 58 | NO 59 | 60 | IBCocoaTouchFramework 61 | YES 62 | 63 | 64 | 65 | 66 | 1 67 | 1 68 | 69 | IBCocoaTouchFramework 70 | NO 71 | 72 | 73 | 256 74 | {0, 0} 75 | NO 76 | YES 77 | YES 78 | IBCocoaTouchFramework 79 | 2 80 | 81 | 82 | YES 83 | 84 | GooglemapDemoViewController 85 | 86 | 87 | 88 | IBCocoaTouchFramework 89 | 90 | 91 | GooglemapDemoViewController 92 | 93 | 1 94 | 1 95 | 96 | IBCocoaTouchFramework 97 | NO 98 | 99 | 100 | 101 | 102 | 103 | 104 | YES 105 | 106 | 107 | delegate 108 | 109 | 110 | 111 | 4 112 | 113 | 114 | 115 | window 116 | 117 | 118 | 119 | 25 120 | 121 | 122 | 123 | 124 | YES 125 | 126 | 0 127 | 128 | 129 | 130 | 131 | 132 | -1 133 | 134 | 135 | File's Owner 136 | 137 | 138 | 3 139 | 140 | 141 | GooglemapDemo App Delegate 142 | 143 | 144 | -2 145 | 146 | 147 | 148 | 149 | 12 150 | 151 | 152 | 153 | 154 | 21 155 | 156 | 157 | YES 158 | 159 | 160 | 161 | 162 | 163 | 164 | 22 165 | 166 | 167 | Navigation Bar 168 | 169 | 170 | 23 171 | 172 | 173 | YES 174 | 175 | 176 | 177 | 178 | 179 | 24 180 | 181 | 182 | 183 | 184 | 185 | 186 | YES 187 | 188 | YES 189 | -1.CustomClassName 190 | -2.CustomClassName 191 | 12.IBEditorWindowLastContentRect 192 | 12.IBPluginDependency 193 | 21.IBPluginDependency 194 | 22.IBPluginDependency 195 | 23.IBPluginDependency 196 | 3.CustomClassName 197 | 3.IBPluginDependency 198 | 199 | 200 | YES 201 | UIApplication 202 | UIResponder 203 | {{525, 346}, {320, 480}} 204 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 205 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 206 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 207 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 208 | GooglemapDemoAppDelegate 209 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 210 | 211 | 212 | 213 | YES 214 | 215 | 216 | 217 | 218 | 219 | YES 220 | 221 | 222 | 223 | 224 | 25 225 | 226 | 227 | 228 | YES 229 | 230 | GooglemapDemoAppDelegate 231 | NSObject 232 | 233 | YES 234 | 235 | YES 236 | viewController 237 | window 238 | 239 | 240 | YES 241 | UIViewController 242 | UIWindow 243 | 244 | 245 | 246 | YES 247 | 248 | YES 249 | viewController 250 | window 251 | 252 | 253 | YES 254 | 255 | viewController 256 | UIViewController 257 | 258 | 259 | window 260 | UIWindow 261 | 262 | 263 | 264 | 265 | IBProjectSource 266 | ./Classes/GooglemapDemoAppDelegate.h 267 | 268 | 269 | 270 | 271 | 0 272 | IBCocoaTouchFramework 273 | 274 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS 275 | 276 | 277 | 278 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 279 | 280 | 281 | YES 282 | 3 283 | 301 284 | 285 | 286 | -------------------------------------------------------------------------------- /Classes/DetailView.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 10K549 6 | 1306 7 | 1038.36 8 | 461.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 301 12 | 13 | 14 | YES 15 | IBUITextView 16 | IBUIButton 17 | IBUIView 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 | 274 49 | {320, 248} 50 | 51 | 52 | 53 | 54 | 1 55 | MSAxIDEAA 56 | 57 | YES 58 | YES 59 | IBCocoaTouchFramework 60 | 樹木資訊 61 | 62 | STHeitiTC-Light 63 | 17 64 | 16 65 | 66 | 1 67 | 68 | 2 69 | IBCocoaTouchFramework 70 | 71 | 72 | 73 | 74 | 292 75 | {{20, 374}, {72, 37}} 76 | 77 | 78 | NO 79 | IBCocoaTouchFramework 80 | 0 81 | 0 82 | 83 | STHeitiTC-Medium 84 | 15 85 | 16 86 | 87 | 1 88 | 帶我去 89 | 90 | 3 91 | MQA 92 | 93 | 94 | 1 95 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 96 | 97 | 98 | 3 99 | MC41AA 100 | 101 | 102 | 103 | 104 | 292 105 | {{124, 374}, {72, 37}} 106 | 107 | 108 | NO 109 | IBCocoaTouchFramework 110 | 0 111 | 0 112 | 113 | 1 114 | 收集 115 | 116 | 117 | 1 118 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 119 | 120 | 121 | 122 | 123 | 124 | 292 125 | {{228, 374}, {72, 37}} 126 | 127 | 128 | NO 129 | IBCocoaTouchFramework 130 | 0 131 | 0 132 | 133 | 1 134 | 通報 135 | 136 | 137 | 1 138 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA 139 | 140 | 141 | 142 | 143 | {{0, 20}, {320, 460}} 144 | 145 | 146 | 147 | 148 | 3 149 | MQA 150 | 151 | 2 152 | 153 | 154 | 155 | IBCocoaTouchFramework 156 | 157 | 158 | 159 | 160 | YES 161 | 162 | 163 | view 164 | 165 | 166 | 167 | 3 168 | 169 | 170 | 171 | 172 | YES 173 | 174 | 0 175 | 176 | 177 | 178 | 179 | 180 | 1 181 | 182 | 183 | YES 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | -1 193 | 194 | 195 | File's Owner 196 | 197 | 198 | -2 199 | 200 | 201 | 202 | 203 | 5 204 | 205 | 206 | 207 | 208 | 6 209 | 210 | 211 | 212 | 213 | 7 214 | 215 | 216 | 217 | 218 | 8 219 | 220 | 221 | 222 | 223 | 224 | 225 | YES 226 | 227 | YES 228 | -1.CustomClassName 229 | -2.CustomClassName 230 | 1.IBEditorWindowLastContentRect 231 | 1.IBPluginDependency 232 | 5.IBPluginDependency 233 | 6.IBPluginDependency 234 | 7.IBPluginDependency 235 | 8.IBPluginDependency 236 | 237 | 238 | YES 239 | DetailView 240 | UIResponder 241 | {{556, 412}, {320, 480}} 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 | 8 262 | 263 | 264 | 265 | YES 266 | 267 | DetailView 268 | UIViewController 269 | 270 | IBProjectSource 271 | ./Classes/DetailView.h 272 | 273 | 274 | 275 | 276 | 0 277 | IBCocoaTouchFramework 278 | 279 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 280 | 281 | 282 | YES 283 | 3 284 | 301 285 | 286 | 287 | -------------------------------------------------------------------------------- /GooglemapDemo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 45; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 071A40FE11F8992100D1B048 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 071A40FD11F8992100D1B048 /* CoreLocation.framework */; }; 11 | 071A410211F8992900D1B048 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 071A410111F8992900D1B048 /* MapKit.framework */; }; 12 | 1894C6ED143D5EAE00F4ADBA /* DetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1894C6EB143D5EAE00F4ADBA /* DetailView.m */; }; 13 | 1894C6EE143D5EAE00F4ADBA /* DetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1894C6EC143D5EAE00F4ADBA /* DetailView.xib */; }; 14 | 18C8A8AD143DD477000A2619 /* Location.png in Resources */ = {isa = PBXBuildFile; fileRef = 18C8A8AC143DD477000A2619 /* Location.png */; }; 15 | 18E2C528143CA856001F4E4E /* MyAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E2C527143CA856001F4E4E /* MyAnnotation.m */; }; 16 | 1D3623260D0F684500981E51 /* GooglemapDemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* GooglemapDemoAppDelegate.m */; }; 17 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; 18 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; 19 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; 20 | 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; 21 | 2899E5220DE3E06400AC0155 /* GooglemapDemoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* GooglemapDemoViewController.xib */; }; 22 | 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; 23 | 28D7ACF80DDB3853001CB0EB /* GooglemapDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* GooglemapDemoViewController.m */; }; 24 | /* End PBXBuildFile section */ 25 | 26 | /* Begin PBXFileReference section */ 27 | 071A40FD11F8992100D1B048 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; 28 | 071A410111F8992900D1B048 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; 29 | 1894C6EA143D5EAE00F4ADBA /* DetailView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailView.h; sourceTree = ""; }; 30 | 1894C6EB143D5EAE00F4ADBA /* DetailView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailView.m; sourceTree = ""; }; 31 | 1894C6EC143D5EAE00F4ADBA /* DetailView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = DetailView.xib; path = Classes/DetailView.xib; sourceTree = ""; }; 32 | 18C8A8AC143DD477000A2619 /* Location.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Location.png; sourceTree = ""; }; 33 | 18E2C526143CA856001F4E4E /* MyAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyAnnotation.h; sourceTree = ""; }; 34 | 18E2C527143CA856001F4E4E /* MyAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyAnnotation.m; sourceTree = ""; }; 35 | 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 36 | 1D3623240D0F684500981E51 /* GooglemapDemoAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GooglemapDemoAppDelegate.h; sourceTree = ""; }; 37 | 1D3623250D0F684500981E51 /* GooglemapDemoAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GooglemapDemoAppDelegate.m; sourceTree = ""; }; 38 | 1D6058910D05DD3D006BFB54 /* GooglemapDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GooglemapDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 40 | 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 41 | 2899E5210DE3E06400AC0155 /* GooglemapDemoViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GooglemapDemoViewController.xib; sourceTree = ""; }; 42 | 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; 43 | 28D7ACF60DDB3853001CB0EB /* GooglemapDemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GooglemapDemoViewController.h; sourceTree = ""; }; 44 | 28D7ACF70DDB3853001CB0EB /* GooglemapDemoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GooglemapDemoViewController.m; sourceTree = ""; }; 45 | 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 46 | 32CA4F630368D1EE00C91783 /* GooglemapDemo_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GooglemapDemo_Prefix.pch; sourceTree = ""; }; 47 | 8D1107310486CEB800E47090 /* GooglemapDemo-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GooglemapDemo-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; 48 | /* End PBXFileReference section */ 49 | 50 | /* Begin PBXFrameworksBuildPhase section */ 51 | 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { 52 | isa = PBXFrameworksBuildPhase; 53 | buildActionMask = 2147483647; 54 | files = ( 55 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, 56 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, 57 | 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, 58 | 071A40FE11F8992100D1B048 /* CoreLocation.framework in Frameworks */, 59 | 071A410211F8992900D1B048 /* MapKit.framework in Frameworks */, 60 | ); 61 | runOnlyForDeploymentPostprocessing = 0; 62 | }; 63 | /* End PBXFrameworksBuildPhase section */ 64 | 65 | /* Begin PBXGroup section */ 66 | 080E96DDFE201D6D7F000001 /* Classes */ = { 67 | isa = PBXGroup; 68 | children = ( 69 | 1D3623240D0F684500981E51 /* GooglemapDemoAppDelegate.h */, 70 | 1D3623250D0F684500981E51 /* GooglemapDemoAppDelegate.m */, 71 | 28D7ACF60DDB3853001CB0EB /* GooglemapDemoViewController.h */, 72 | 28D7ACF70DDB3853001CB0EB /* GooglemapDemoViewController.m */, 73 | 18E2C526143CA856001F4E4E /* MyAnnotation.h */, 74 | 18E2C527143CA856001F4E4E /* MyAnnotation.m */, 75 | 1894C6EA143D5EAE00F4ADBA /* DetailView.h */, 76 | 1894C6EB143D5EAE00F4ADBA /* DetailView.m */, 77 | ); 78 | path = Classes; 79 | sourceTree = ""; 80 | }; 81 | 18C8A8AB143DD30D000A2619 /* Images */ = { 82 | isa = PBXGroup; 83 | children = ( 84 | 18C8A8AC143DD477000A2619 /* Location.png */, 85 | ); 86 | name = Images; 87 | sourceTree = ""; 88 | }; 89 | 19C28FACFE9D520D11CA2CBB /* Products */ = { 90 | isa = PBXGroup; 91 | children = ( 92 | 1D6058910D05DD3D006BFB54 /* GooglemapDemo.app */, 93 | ); 94 | name = Products; 95 | sourceTree = ""; 96 | }; 97 | 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { 98 | isa = PBXGroup; 99 | children = ( 100 | 080E96DDFE201D6D7F000001 /* Classes */, 101 | 29B97315FDCFA39411CA2CEA /* Other Sources */, 102 | 29B97317FDCFA39411CA2CEA /* Resources */, 103 | 29B97323FDCFA39411CA2CEA /* Frameworks */, 104 | 19C28FACFE9D520D11CA2CBB /* Products */, 105 | ); 106 | name = CustomTemplate; 107 | sourceTree = ""; 108 | }; 109 | 29B97315FDCFA39411CA2CEA /* Other Sources */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | 32CA4F630368D1EE00C91783 /* GooglemapDemo_Prefix.pch */, 113 | 29B97316FDCFA39411CA2CEA /* main.m */, 114 | ); 115 | name = "Other Sources"; 116 | sourceTree = ""; 117 | }; 118 | 29B97317FDCFA39411CA2CEA /* Resources */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | 18C8A8AB143DD30D000A2619 /* Images */, 122 | 1894C6EC143D5EAE00F4ADBA /* DetailView.xib */, 123 | 2899E5210DE3E06400AC0155 /* GooglemapDemoViewController.xib */, 124 | 28AD733E0D9D9553002E5188 /* MainWindow.xib */, 125 | 8D1107310486CEB800E47090 /* GooglemapDemo-Info.plist */, 126 | ); 127 | name = Resources; 128 | sourceTree = ""; 129 | }; 130 | 29B97323FDCFA39411CA2CEA /* Frameworks */ = { 131 | isa = PBXGroup; 132 | children = ( 133 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, 134 | 1D30AB110D05D00D00671497 /* Foundation.framework */, 135 | 288765A40DF7441C002DB57D /* CoreGraphics.framework */, 136 | 071A40FD11F8992100D1B048 /* CoreLocation.framework */, 137 | 071A410111F8992900D1B048 /* MapKit.framework */, 138 | ); 139 | name = Frameworks; 140 | sourceTree = ""; 141 | }; 142 | /* End PBXGroup section */ 143 | 144 | /* Begin PBXNativeTarget section */ 145 | 1D6058900D05DD3D006BFB54 /* GooglemapDemo */ = { 146 | isa = PBXNativeTarget; 147 | buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "GooglemapDemo" */; 148 | buildPhases = ( 149 | 1D60588D0D05DD3D006BFB54 /* Resources */, 150 | 1D60588E0D05DD3D006BFB54 /* Sources */, 151 | 1D60588F0D05DD3D006BFB54 /* Frameworks */, 152 | ); 153 | buildRules = ( 154 | ); 155 | dependencies = ( 156 | ); 157 | name = GooglemapDemo; 158 | productName = GooglemapDemo; 159 | productReference = 1D6058910D05DD3D006BFB54 /* GooglemapDemo.app */; 160 | productType = "com.apple.product-type.application"; 161 | }; 162 | /* End PBXNativeTarget section */ 163 | 164 | /* Begin PBXProject section */ 165 | 29B97313FDCFA39411CA2CEA /* Project object */ = { 166 | isa = PBXProject; 167 | buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GooglemapDemo" */; 168 | compatibilityVersion = "Xcode 3.1"; 169 | developmentRegion = English; 170 | hasScannedForEncodings = 1; 171 | knownRegions = ( 172 | en, 173 | ); 174 | mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; 175 | projectDirPath = ""; 176 | projectRoot = ""; 177 | targets = ( 178 | 1D6058900D05DD3D006BFB54 /* GooglemapDemo */, 179 | ); 180 | }; 181 | /* End PBXProject section */ 182 | 183 | /* Begin PBXResourcesBuildPhase section */ 184 | 1D60588D0D05DD3D006BFB54 /* Resources */ = { 185 | isa = PBXResourcesBuildPhase; 186 | buildActionMask = 2147483647; 187 | files = ( 188 | 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, 189 | 2899E5220DE3E06400AC0155 /* GooglemapDemoViewController.xib in Resources */, 190 | 1894C6EE143D5EAE00F4ADBA /* DetailView.xib in Resources */, 191 | 18C8A8AD143DD477000A2619 /* Location.png in Resources */, 192 | ); 193 | runOnlyForDeploymentPostprocessing = 0; 194 | }; 195 | /* End PBXResourcesBuildPhase section */ 196 | 197 | /* Begin PBXSourcesBuildPhase section */ 198 | 1D60588E0D05DD3D006BFB54 /* Sources */ = { 199 | isa = PBXSourcesBuildPhase; 200 | buildActionMask = 2147483647; 201 | files = ( 202 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */, 203 | 1D3623260D0F684500981E51 /* GooglemapDemoAppDelegate.m in Sources */, 204 | 28D7ACF80DDB3853001CB0EB /* GooglemapDemoViewController.m in Sources */, 205 | 18E2C528143CA856001F4E4E /* MyAnnotation.m in Sources */, 206 | 1894C6ED143D5EAE00F4ADBA /* DetailView.m in Sources */, 207 | ); 208 | runOnlyForDeploymentPostprocessing = 0; 209 | }; 210 | /* End PBXSourcesBuildPhase section */ 211 | 212 | /* Begin XCBuildConfiguration section */ 213 | 1D6058940D05DD3E006BFB54 /* Debug */ = { 214 | isa = XCBuildConfiguration; 215 | buildSettings = { 216 | ALWAYS_SEARCH_USER_PATHS = NO; 217 | COPY_PHASE_STRIP = NO; 218 | GCC_DYNAMIC_NO_PIC = NO; 219 | GCC_OPTIMIZATION_LEVEL = 0; 220 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 221 | GCC_PREFIX_HEADER = GooglemapDemo_Prefix.pch; 222 | INFOPLIST_FILE = "GooglemapDemo-Info.plist"; 223 | PRODUCT_NAME = GooglemapDemo; 224 | }; 225 | name = Debug; 226 | }; 227 | 1D6058950D05DD3E006BFB54 /* Release */ = { 228 | isa = XCBuildConfiguration; 229 | buildSettings = { 230 | ALWAYS_SEARCH_USER_PATHS = NO; 231 | COPY_PHASE_STRIP = YES; 232 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 233 | GCC_PREFIX_HEADER = GooglemapDemo_Prefix.pch; 234 | INFOPLIST_FILE = "GooglemapDemo-Info.plist"; 235 | PRODUCT_NAME = GooglemapDemo; 236 | VALIDATE_PRODUCT = YES; 237 | }; 238 | name = Release; 239 | }; 240 | C01FCF4F08A954540054247B /* Debug */ = { 241 | isa = XCBuildConfiguration; 242 | buildSettings = { 243 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 244 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Eric Lin (8DL39ZSP7J)"; 245 | GCC_C_LANGUAGE_STANDARD = c99; 246 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 247 | GCC_WARN_UNUSED_VARIABLE = YES; 248 | PREBINDING = NO; 249 | "PROVISIONING_PROFILE[sdk=iphoneos*]" = "18AEA5E1-045D-4D16-BAF0-DFF0944AE46F"; 250 | SDKROOT = iphoneos4.0; 251 | }; 252 | name = Debug; 253 | }; 254 | C01FCF5008A954540054247B /* Release */ = { 255 | isa = XCBuildConfiguration; 256 | buildSettings = { 257 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 258 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Eric Lin (8DL39ZSP7J)"; 259 | GCC_C_LANGUAGE_STANDARD = c99; 260 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 261 | GCC_WARN_UNUSED_VARIABLE = YES; 262 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 263 | PREBINDING = NO; 264 | "PROVISIONING_PROFILE[sdk=iphoneos*]" = "18AEA5E1-045D-4D16-BAF0-DFF0944AE46F"; 265 | SDKROOT = iphoneos4.0; 266 | }; 267 | name = Release; 268 | }; 269 | /* End XCBuildConfiguration section */ 270 | 271 | /* Begin XCConfigurationList section */ 272 | 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "GooglemapDemo" */ = { 273 | isa = XCConfigurationList; 274 | buildConfigurations = ( 275 | 1D6058940D05DD3E006BFB54 /* Debug */, 276 | 1D6058950D05DD3E006BFB54 /* Release */, 277 | ); 278 | defaultConfigurationIsVisible = 0; 279 | defaultConfigurationName = Release; 280 | }; 281 | C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GooglemapDemo" */ = { 282 | isa = XCConfigurationList; 283 | buildConfigurations = ( 284 | C01FCF4F08A954540054247B /* Debug */, 285 | C01FCF5008A954540054247B /* Release */, 286 | ); 287 | defaultConfigurationIsVisible = 0; 288 | defaultConfigurationName = Release; 289 | }; 290 | /* End XCConfigurationList section */ 291 | }; 292 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; 293 | } 294 | -------------------------------------------------------------------------------- /GooglemapDemo.xcodeproj/eric.mode1v3: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ActivePerspectiveName 6 | Project 7 | AllowedModules 8 | 9 | 10 | BundleLoadPath 11 | 12 | MaxInstances 13 | n 14 | Module 15 | PBXSmartGroupTreeModule 16 | Name 17 | Groups and Files Outline View 18 | 19 | 20 | BundleLoadPath 21 | 22 | MaxInstances 23 | n 24 | Module 25 | PBXNavigatorGroup 26 | Name 27 | Editor 28 | 29 | 30 | BundleLoadPath 31 | 32 | MaxInstances 33 | n 34 | Module 35 | XCTaskListModule 36 | Name 37 | Task List 38 | 39 | 40 | BundleLoadPath 41 | 42 | MaxInstances 43 | n 44 | Module 45 | XCDetailModule 46 | Name 47 | File and Smart Group Detail Viewer 48 | 49 | 50 | BundleLoadPath 51 | 52 | MaxInstances 53 | 1 54 | Module 55 | PBXBuildResultsModule 56 | Name 57 | Detailed Build Results Viewer 58 | 59 | 60 | BundleLoadPath 61 | 62 | MaxInstances 63 | 1 64 | Module 65 | PBXProjectFindModule 66 | Name 67 | Project Batch Find Tool 68 | 69 | 70 | BundleLoadPath 71 | 72 | MaxInstances 73 | n 74 | Module 75 | XCProjectFormatConflictsModule 76 | Name 77 | Project Format Conflicts List 78 | 79 | 80 | BundleLoadPath 81 | 82 | MaxInstances 83 | n 84 | Module 85 | PBXBookmarksModule 86 | Name 87 | Bookmarks Tool 88 | 89 | 90 | BundleLoadPath 91 | 92 | MaxInstances 93 | n 94 | Module 95 | PBXClassBrowserModule 96 | Name 97 | Class Browser 98 | 99 | 100 | BundleLoadPath 101 | 102 | MaxInstances 103 | n 104 | Module 105 | PBXCVSModule 106 | Name 107 | Source Code Control Tool 108 | 109 | 110 | BundleLoadPath 111 | 112 | MaxInstances 113 | n 114 | Module 115 | PBXDebugBreakpointsModule 116 | Name 117 | Debug Breakpoints Tool 118 | 119 | 120 | BundleLoadPath 121 | 122 | MaxInstances 123 | n 124 | Module 125 | XCDockableInspector 126 | Name 127 | Inspector 128 | 129 | 130 | BundleLoadPath 131 | 132 | MaxInstances 133 | n 134 | Module 135 | PBXOpenQuicklyModule 136 | Name 137 | Open Quickly Tool 138 | 139 | 140 | BundleLoadPath 141 | 142 | MaxInstances 143 | 1 144 | Module 145 | PBXDebugSessionModule 146 | Name 147 | Debugger 148 | 149 | 150 | BundleLoadPath 151 | 152 | MaxInstances 153 | 1 154 | Module 155 | PBXDebugCLIModule 156 | Name 157 | Debug Console 158 | 159 | 160 | BundleLoadPath 161 | 162 | MaxInstances 163 | n 164 | Module 165 | XCSnapshotModule 166 | Name 167 | Snapshots Tool 168 | 169 | 170 | BundlePath 171 | /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources 172 | Description 173 | DefaultDescriptionKey 174 | DockingSystemVisible 175 | 176 | Extension 177 | mode1v3 178 | FavBarConfig 179 | 180 | PBXProjectModuleGUID 181 | 071A40F411F898CC00D1B048 182 | XCBarModuleItemNames 183 | 184 | XCBarModuleItems 185 | 186 | 187 | FirstTimeWindowDisplayed 188 | 189 | Identifier 190 | com.apple.perspectives.project.mode1v3 191 | MajorVersion 192 | 33 193 | MinorVersion 194 | 0 195 | Name 196 | Default 197 | Notifications 198 | 199 | OpenEditors 200 | 201 | 202 | Content 203 | 204 | PBXProjectModuleGUID 205 | 0709B76911F9CECB00A04DC8 206 | PBXProjectModuleLabel 207 | GooglemapDemoViewController.h 208 | PBXSplitModuleInNavigatorKey 209 | 210 | Split0 211 | 212 | PBXProjectModuleGUID 213 | 0709B76A11F9CECB00A04DC8 214 | PBXProjectModuleLabel 215 | GooglemapDemoViewController.h 216 | history 217 | 218 | 0709B79E11F9D50600A04DC8 219 | 220 | 221 | SplitCount 222 | 1 223 | 224 | StatusBarVisibility 225 | 226 | 227 | Geometry 228 | 229 | Frame 230 | {{0, 20}, {1145, 615}} 231 | PBXModuleWindowStatusBarHidden2 232 | 233 | RubberWindowFrame 234 | 135 60 1145 656 0 0 1280 778 235 | 236 | 237 | 238 | PerspectiveWidths 239 | 240 | -1 241 | -1 242 | 243 | Perspectives 244 | 245 | 246 | ChosenToolbarItems 247 | 248 | active-combo-popup 249 | action 250 | NSToolbarFlexibleSpaceItem 251 | debugger-enable-breakpoints 252 | build-and-go 253 | com.apple.ide.PBXToolbarStopButton 254 | get-info 255 | NSToolbarFlexibleSpaceItem 256 | com.apple.pbx.toolbar.searchfield 257 | 258 | ControllerClassBaseName 259 | 260 | IconName 261 | WindowOfProjectWithEditor 262 | Identifier 263 | perspective.project 264 | IsVertical 265 | 266 | Layout 267 | 268 | 269 | ContentConfiguration 270 | 271 | PBXBottomSmartGroupGIDs 272 | 273 | 1C37FBAC04509CD000000102 274 | 1C37FAAC04509CD000000102 275 | 1C37FABC05509CD000000102 276 | 1C37FABC05539CD112110102 277 | E2644B35053B69B200211256 278 | 1C37FABC04509CD000100104 279 | 1CC0EA4004350EF90044410B 280 | 1CC0EA4004350EF90041110B 281 | 282 | PBXProjectModuleGUID 283 | 1CE0B1FE06471DED0097A5F4 284 | PBXProjectModuleLabel 285 | Files 286 | PBXProjectStructureProvided 287 | yes 288 | PBXSmartGroupTreeModuleColumnData 289 | 290 | PBXSmartGroupTreeModuleColumnWidthsKey 291 | 292 | 186 293 | 294 | PBXSmartGroupTreeModuleColumnsKey_v4 295 | 296 | MainColumn 297 | 298 | 299 | PBXSmartGroupTreeModuleOutlineStateKey_v7 300 | 301 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 302 | 303 | 29B97314FDCFA39411CA2CEA 304 | 080E96DDFE201D6D7F000001 305 | 29B97317FDCFA39411CA2CEA 306 | 29B97323FDCFA39411CA2CEA 307 | 1C37FABC05509CD000000102 308 | 309 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 310 | 311 | 312 | 8 313 | 7 314 | 0 315 | 316 | 317 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 318 | {{0, 0}, {186, 660}} 319 | 320 | PBXTopSmartGroupGIDs 321 | 322 | XCIncludePerspectivesSwitch 323 | 324 | XCSharingToken 325 | com.apple.Xcode.GFSharingToken 326 | 327 | GeometryConfiguration 328 | 329 | Frame 330 | {{0, 0}, {203, 678}} 331 | GroupTreeTableConfiguration 332 | 333 | MainColumn 334 | 186 335 | 336 | RubberWindowFrame 337 | 0 59 1280 719 0 0 1280 778 338 | 339 | Module 340 | PBXSmartGroupTreeModule 341 | Proportion 342 | 203pt 343 | 344 | 345 | Dock 346 | 347 | 348 | BecomeActive 349 | 350 | ContentConfiguration 351 | 352 | PBXProjectModuleGUID 353 | 1CE0B20306471E060097A5F4 354 | PBXProjectModuleLabel 355 | GooglemapDemoViewController.m 356 | PBXSplitModuleInNavigatorKey 357 | 358 | Split0 359 | 360 | PBXProjectModuleGUID 361 | 1CE0B20406471E060097A5F4 362 | PBXProjectModuleLabel 363 | GooglemapDemoViewController.m 364 | _historyCapacity 365 | 0 366 | bookmark 367 | 0788EFDC12240C7D004FFB9D 368 | history 369 | 370 | 0775F09A11F926DF00EA07E8 371 | 0775F11211F93A3000EA07E8 372 | 0709B79B11F9D50600A04DC8 373 | 0709B7B011F9D98800A04DC8 374 | 375 | 376 | SplitCount 377 | 1 378 | 379 | StatusBarVisibility 380 | 381 | 382 | GeometryConfiguration 383 | 384 | Frame 385 | {{0, 0}, {1072, 673}} 386 | RubberWindowFrame 387 | 0 59 1280 719 0 0 1280 778 388 | 389 | Module 390 | PBXNavigatorGroup 391 | Proportion 392 | 673pt 393 | 394 | 395 | ContentConfiguration 396 | 397 | PBXProjectModuleGUID 398 | 1CE0B20506471E060097A5F4 399 | PBXProjectModuleLabel 400 | Detail 401 | 402 | GeometryConfiguration 403 | 404 | Frame 405 | {{0, 678}, {1072, 0}} 406 | RubberWindowFrame 407 | 0 59 1280 719 0 0 1280 778 408 | 409 | Module 410 | XCDetailModule 411 | Proportion 412 | 0pt 413 | 414 | 415 | Proportion 416 | 1072pt 417 | 418 | 419 | Name 420 | Project 421 | ServiceClasses 422 | 423 | XCModuleDock 424 | PBXSmartGroupTreeModule 425 | XCModuleDock 426 | PBXNavigatorGroup 427 | XCDetailModule 428 | 429 | TableOfContents 430 | 431 | 0788EFDD12240C7D004FFB9D 432 | 1CE0B1FE06471DED0097A5F4 433 | 0788EFDE12240C7D004FFB9D 434 | 1CE0B20306471E060097A5F4 435 | 1CE0B20506471E060097A5F4 436 | 437 | ToolbarConfigUserDefaultsMinorVersion 438 | 2 439 | ToolbarConfiguration 440 | xcode.toolbar.config.defaultV3 441 | 442 | 443 | ControllerClassBaseName 444 | 445 | IconName 446 | WindowOfProject 447 | Identifier 448 | perspective.morph 449 | IsVertical 450 | 0 451 | Layout 452 | 453 | 454 | BecomeActive 455 | 1 456 | ContentConfiguration 457 | 458 | PBXBottomSmartGroupGIDs 459 | 460 | 1C37FBAC04509CD000000102 461 | 1C37FAAC04509CD000000102 462 | 1C08E77C0454961000C914BD 463 | 1C37FABC05509CD000000102 464 | 1C37FABC05539CD112110102 465 | E2644B35053B69B200211256 466 | 1C37FABC04509CD000100104 467 | 1CC0EA4004350EF90044410B 468 | 1CC0EA4004350EF90041110B 469 | 470 | PBXProjectModuleGUID 471 | 11E0B1FE06471DED0097A5F4 472 | PBXProjectModuleLabel 473 | Files 474 | PBXProjectStructureProvided 475 | yes 476 | PBXSmartGroupTreeModuleColumnData 477 | 478 | PBXSmartGroupTreeModuleColumnWidthsKey 479 | 480 | 186 481 | 482 | PBXSmartGroupTreeModuleColumnsKey_v4 483 | 484 | MainColumn 485 | 486 | 487 | PBXSmartGroupTreeModuleOutlineStateKey_v7 488 | 489 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 490 | 491 | 29B97314FDCFA39411CA2CEA 492 | 1C37FABC05509CD000000102 493 | 494 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 495 | 496 | 497 | 0 498 | 499 | 500 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 501 | {{0, 0}, {186, 337}} 502 | 503 | PBXTopSmartGroupGIDs 504 | 505 | XCIncludePerspectivesSwitch 506 | 1 507 | XCSharingToken 508 | com.apple.Xcode.GFSharingToken 509 | 510 | GeometryConfiguration 511 | 512 | Frame 513 | {{0, 0}, {203, 355}} 514 | GroupTreeTableConfiguration 515 | 516 | MainColumn 517 | 186 518 | 519 | RubberWindowFrame 520 | 373 269 690 397 0 0 1440 878 521 | 522 | Module 523 | PBXSmartGroupTreeModule 524 | Proportion 525 | 100% 526 | 527 | 528 | Name 529 | Morph 530 | PreferredWidth 531 | 300 532 | ServiceClasses 533 | 534 | XCModuleDock 535 | PBXSmartGroupTreeModule 536 | 537 | TableOfContents 538 | 539 | 11E0B1FE06471DED0097A5F4 540 | 541 | ToolbarConfiguration 542 | xcode.toolbar.config.default.shortV3 543 | 544 | 545 | PerspectivesBarVisible 546 | 547 | ShelfIsVisible 548 | 549 | SourceDescription 550 | file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' 551 | StatusbarIsVisible 552 | 553 | TimeStamp 554 | 0.0 555 | ToolbarConfigUserDefaultsMinorVersion 556 | 2 557 | ToolbarDisplayMode 558 | 1 559 | ToolbarIsVisible 560 | 561 | ToolbarSizeMode 562 | 1 563 | Type 564 | Perspectives 565 | UpdateMessage 566 | The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? 567 | WindowJustification 568 | 5 569 | WindowOrderList 570 | 571 | 071A40F511F898CC00D1B048 572 | /Volumes/FLASH DRIVE/出書計劃/iPhone 創意程式設計 2nd Edition/書附光碟/書中範例/Ch12/GooglemapDemo/GooglemapDemo.xcodeproj 573 | 574 | WindowString 575 | 0 59 1280 719 0 0 1280 778 576 | WindowToolsV3 577 | 578 | 579 | FirstTimeWindowDisplayed 580 | 581 | Identifier 582 | windowTool.build 583 | IsVertical 584 | 585 | Layout 586 | 587 | 588 | Dock 589 | 590 | 591 | ContentConfiguration 592 | 593 | PBXProjectModuleGUID 594 | 1CD0528F0623707200166675 595 | PBXProjectModuleLabel 596 | 597 | StatusBarVisibility 598 | 599 | 600 | GeometryConfiguration 601 | 602 | Frame 603 | {{0, 0}, {930, 351}} 604 | RubberWindowFrame 605 | 42 99 930 633 0 0 1280 778 606 | 607 | Module 608 | PBXNavigatorGroup 609 | Proportion 610 | 351pt 611 | 612 | 613 | BecomeActive 614 | 615 | ContentConfiguration 616 | 617 | PBXProjectModuleGUID 618 | XCMainBuildResultsModuleGUID 619 | PBXProjectModuleLabel 620 | Build Results 621 | XCBuildResultsTrigger_Collapse 622 | 1021 623 | XCBuildResultsTrigger_Open 624 | 1011 625 | 626 | GeometryConfiguration 627 | 628 | Frame 629 | {{0, 356}, {930, 236}} 630 | RubberWindowFrame 631 | 42 99 930 633 0 0 1280 778 632 | 633 | Module 634 | PBXBuildResultsModule 635 | Proportion 636 | 236pt 637 | 638 | 639 | Proportion 640 | 592pt 641 | 642 | 643 | Name 644 | Build Results 645 | ServiceClasses 646 | 647 | PBXBuildResultsModule 648 | 649 | StatusbarIsVisible 650 | 651 | TableOfContents 652 | 653 | 071A40F511F898CC00D1B048 654 | 0788EFDB12240C7B004FFB9D 655 | 1CD0528F0623707200166675 656 | XCMainBuildResultsModuleGUID 657 | 658 | ToolbarConfiguration 659 | xcode.toolbar.config.buildV3 660 | WindowContentMinSize 661 | 486 300 662 | WindowString 663 | 42 99 930 633 0 0 1280 778 664 | WindowToolGUID 665 | 071A40F511F898CC00D1B048 666 | WindowToolIsVisible 667 | 668 | 669 | 670 | FirstTimeWindowDisplayed 671 | 672 | Identifier 673 | windowTool.debugger 674 | IsVertical 675 | 676 | Layout 677 | 678 | 679 | Dock 680 | 681 | 682 | ContentConfiguration 683 | 684 | Debugger 685 | 686 | HorizontalSplitView 687 | 688 | _collapsingFrameDimension 689 | 0.0 690 | _indexOfCollapsedView 691 | 0 692 | _percentageOfCollapsedView 693 | 0.0 694 | isCollapsed 695 | yes 696 | sizes 697 | 698 | {{0, 0}, {316, 203}} 699 | {{316, 0}, {378, 203}} 700 | 701 | 702 | VerticalSplitView 703 | 704 | _collapsingFrameDimension 705 | 0.0 706 | _indexOfCollapsedView 707 | 0 708 | _percentageOfCollapsedView 709 | 0.0 710 | isCollapsed 711 | yes 712 | sizes 713 | 714 | {{0, 0}, {694, 203}} 715 | {{0, 203}, {694, 178}} 716 | 717 | 718 | 719 | LauncherConfigVersion 720 | 8 721 | PBXProjectModuleGUID 722 | 1C162984064C10D400B95A72 723 | PBXProjectModuleLabel 724 | Debug - GLUTExamples (Underwater) 725 | 726 | GeometryConfiguration 727 | 728 | DebugConsoleVisible 729 | None 730 | DebugConsoleWindowFrame 731 | {{200, 200}, {500, 300}} 732 | DebugSTDIOWindowFrame 733 | {{200, 200}, {500, 300}} 734 | Frame 735 | {{0, 0}, {694, 381}} 736 | PBXDebugSessionStackFrameViewKey 737 | 738 | DebugVariablesTableConfiguration 739 | 740 | Name 741 | 120 742 | Value 743 | 85 744 | Summary 745 | 148 746 | 747 | Frame 748 | {{316, 0}, {378, 203}} 749 | RubberWindowFrame 750 | 42 310 694 422 0 0 1280 778 751 | 752 | RubberWindowFrame 753 | 42 310 694 422 0 0 1280 778 754 | 755 | Module 756 | PBXDebugSessionModule 757 | Proportion 758 | 381pt 759 | 760 | 761 | Proportion 762 | 381pt 763 | 764 | 765 | Name 766 | Debugger 767 | ServiceClasses 768 | 769 | PBXDebugSessionModule 770 | 771 | StatusbarIsVisible 772 | 773 | TableOfContents 774 | 775 | 1CD10A99069EF8BA00B06720 776 | 0709B7B211F9D98800A04DC8 777 | 1C162984064C10D400B95A72 778 | 0709B7B311F9D98800A04DC8 779 | 0709B7B411F9D98800A04DC8 780 | 0709B7B511F9D98800A04DC8 781 | 0709B7B611F9D98800A04DC8 782 | 0709B7B711F9D98800A04DC8 783 | 784 | ToolbarConfiguration 785 | xcode.toolbar.config.debugV3 786 | WindowString 787 | 42 310 694 422 0 0 1280 778 788 | WindowToolGUID 789 | 1CD10A99069EF8BA00B06720 790 | WindowToolIsVisible 791 | 792 | 793 | 794 | Identifier 795 | windowTool.find 796 | Layout 797 | 798 | 799 | Dock 800 | 801 | 802 | Dock 803 | 804 | 805 | ContentConfiguration 806 | 807 | PBXProjectModuleGUID 808 | 1CDD528C0622207200134675 809 | PBXProjectModuleLabel 810 | <No Editor> 811 | PBXSplitModuleInNavigatorKey 812 | 813 | Split0 814 | 815 | PBXProjectModuleGUID 816 | 1CD0528D0623707200166675 817 | 818 | SplitCount 819 | 1 820 | 821 | StatusBarVisibility 822 | 1 823 | 824 | GeometryConfiguration 825 | 826 | Frame 827 | {{0, 0}, {781, 167}} 828 | RubberWindowFrame 829 | 62 385 781 470 0 0 1440 878 830 | 831 | Module 832 | PBXNavigatorGroup 833 | Proportion 834 | 781pt 835 | 836 | 837 | Proportion 838 | 50% 839 | 840 | 841 | BecomeActive 842 | 1 843 | ContentConfiguration 844 | 845 | PBXProjectModuleGUID 846 | 1CD0528E0623707200166675 847 | PBXProjectModuleLabel 848 | Project Find 849 | 850 | GeometryConfiguration 851 | 852 | Frame 853 | {{8, 0}, {773, 254}} 854 | RubberWindowFrame 855 | 62 385 781 470 0 0 1440 878 856 | 857 | Module 858 | PBXProjectFindModule 859 | Proportion 860 | 50% 861 | 862 | 863 | Proportion 864 | 428pt 865 | 866 | 867 | Name 868 | Project Find 869 | ServiceClasses 870 | 871 | PBXProjectFindModule 872 | 873 | StatusbarIsVisible 874 | 1 875 | TableOfContents 876 | 877 | 1C530D57069F1CE1000CFCEE 878 | 1C530D58069F1CE1000CFCEE 879 | 1C530D59069F1CE1000CFCEE 880 | 1CDD528C0622207200134675 881 | 1C530D5A069F1CE1000CFCEE 882 | 1CE0B1FE06471DED0097A5F4 883 | 1CD0528E0623707200166675 884 | 885 | WindowString 886 | 62 385 781 470 0 0 1440 878 887 | WindowToolGUID 888 | 1C530D57069F1CE1000CFCEE 889 | WindowToolIsVisible 890 | 0 891 | 892 | 893 | Identifier 894 | MENUSEPARATOR 895 | 896 | 897 | FirstTimeWindowDisplayed 898 | 899 | Identifier 900 | windowTool.debuggerConsole 901 | IsVertical 902 | 903 | Layout 904 | 905 | 906 | Dock 907 | 908 | 909 | BecomeActive 910 | 911 | ContentConfiguration 912 | 913 | PBXProjectModuleGUID 914 | 1C78EAAC065D492600B07095 915 | PBXProjectModuleLabel 916 | Debugger Console 917 | 918 | GeometryConfiguration 919 | 920 | Frame 921 | {{0, 0}, {650, 209}} 922 | RubberWindowFrame 923 | 325 528 650 250 0 0 1280 778 924 | 925 | Module 926 | PBXDebugCLIModule 927 | Proportion 928 | 209pt 929 | 930 | 931 | Proportion 932 | 209pt 933 | 934 | 935 | Name 936 | Debugger Console 937 | ServiceClasses 938 | 939 | PBXDebugCLIModule 940 | 941 | StatusbarIsVisible 942 | 943 | TableOfContents 944 | 945 | 1C78EAAD065D492600B07095 946 | 0709B75B11F9CDFC00A04DC8 947 | 1C78EAAC065D492600B07095 948 | 949 | ToolbarConfiguration 950 | xcode.toolbar.config.consoleV3 951 | WindowString 952 | 325 528 650 250 0 0 1280 778 953 | WindowToolGUID 954 | 1C78EAAD065D492600B07095 955 | WindowToolIsVisible 956 | 957 | 958 | 959 | Identifier 960 | windowTool.snapshots 961 | Layout 962 | 963 | 964 | Dock 965 | 966 | 967 | Module 968 | XCSnapshotModule 969 | Proportion 970 | 100% 971 | 972 | 973 | Proportion 974 | 100% 975 | 976 | 977 | Name 978 | Snapshots 979 | ServiceClasses 980 | 981 | XCSnapshotModule 982 | 983 | StatusbarIsVisible 984 | Yes 985 | ToolbarConfiguration 986 | xcode.toolbar.config.snapshots 987 | WindowString 988 | 315 824 300 550 0 0 1440 878 989 | WindowToolIsVisible 990 | Yes 991 | 992 | 993 | Identifier 994 | windowTool.scm 995 | Layout 996 | 997 | 998 | Dock 999 | 1000 | 1001 | ContentConfiguration 1002 | 1003 | PBXProjectModuleGUID 1004 | 1C78EAB2065D492600B07095 1005 | PBXProjectModuleLabel 1006 | <No Editor> 1007 | PBXSplitModuleInNavigatorKey 1008 | 1009 | Split0 1010 | 1011 | PBXProjectModuleGUID 1012 | 1C78EAB3065D492600B07095 1013 | 1014 | SplitCount 1015 | 1 1016 | 1017 | StatusBarVisibility 1018 | 1 1019 | 1020 | GeometryConfiguration 1021 | 1022 | Frame 1023 | {{0, 0}, {452, 0}} 1024 | RubberWindowFrame 1025 | 743 379 452 308 0 0 1280 1002 1026 | 1027 | Module 1028 | PBXNavigatorGroup 1029 | Proportion 1030 | 0pt 1031 | 1032 | 1033 | BecomeActive 1034 | 1 1035 | ContentConfiguration 1036 | 1037 | PBXProjectModuleGUID 1038 | 1CD052920623707200166675 1039 | PBXProjectModuleLabel 1040 | SCM 1041 | 1042 | GeometryConfiguration 1043 | 1044 | ConsoleFrame 1045 | {{0, 259}, {452, 0}} 1046 | Frame 1047 | {{0, 7}, {452, 259}} 1048 | RubberWindowFrame 1049 | 743 379 452 308 0 0 1280 1002 1050 | TableConfiguration 1051 | 1052 | Status 1053 | 30 1054 | FileName 1055 | 199 1056 | Path 1057 | 197.0950012207031 1058 | 1059 | TableFrame 1060 | {{0, 0}, {452, 250}} 1061 | 1062 | Module 1063 | PBXCVSModule 1064 | Proportion 1065 | 262pt 1066 | 1067 | 1068 | Proportion 1069 | 266pt 1070 | 1071 | 1072 | Name 1073 | SCM 1074 | ServiceClasses 1075 | 1076 | PBXCVSModule 1077 | 1078 | StatusbarIsVisible 1079 | 1 1080 | TableOfContents 1081 | 1082 | 1C78EAB4065D492600B07095 1083 | 1C78EAB5065D492600B07095 1084 | 1C78EAB2065D492600B07095 1085 | 1CD052920623707200166675 1086 | 1087 | ToolbarConfiguration 1088 | xcode.toolbar.config.scm 1089 | WindowString 1090 | 743 379 452 308 0 0 1280 1002 1091 | 1092 | 1093 | Identifier 1094 | windowTool.breakpoints 1095 | IsVertical 1096 | 0 1097 | Layout 1098 | 1099 | 1100 | Dock 1101 | 1102 | 1103 | BecomeActive 1104 | 1 1105 | ContentConfiguration 1106 | 1107 | PBXBottomSmartGroupGIDs 1108 | 1109 | 1C77FABC04509CD000000102 1110 | 1111 | PBXProjectModuleGUID 1112 | 1CE0B1FE06471DED0097A5F4 1113 | PBXProjectModuleLabel 1114 | Files 1115 | PBXProjectStructureProvided 1116 | no 1117 | PBXSmartGroupTreeModuleColumnData 1118 | 1119 | PBXSmartGroupTreeModuleColumnWidthsKey 1120 | 1121 | 168 1122 | 1123 | PBXSmartGroupTreeModuleColumnsKey_v4 1124 | 1125 | MainColumn 1126 | 1127 | 1128 | PBXSmartGroupTreeModuleOutlineStateKey_v7 1129 | 1130 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 1131 | 1132 | 1C77FABC04509CD000000102 1133 | 1134 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 1135 | 1136 | 1137 | 0 1138 | 1139 | 1140 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 1141 | {{0, 0}, {168, 350}} 1142 | 1143 | PBXTopSmartGroupGIDs 1144 | 1145 | XCIncludePerspectivesSwitch 1146 | 0 1147 | 1148 | GeometryConfiguration 1149 | 1150 | Frame 1151 | {{0, 0}, {185, 368}} 1152 | GroupTreeTableConfiguration 1153 | 1154 | MainColumn 1155 | 168 1156 | 1157 | RubberWindowFrame 1158 | 315 424 744 409 0 0 1440 878 1159 | 1160 | Module 1161 | PBXSmartGroupTreeModule 1162 | Proportion 1163 | 185pt 1164 | 1165 | 1166 | ContentConfiguration 1167 | 1168 | PBXProjectModuleGUID 1169 | 1CA1AED706398EBD00589147 1170 | PBXProjectModuleLabel 1171 | Detail 1172 | 1173 | GeometryConfiguration 1174 | 1175 | Frame 1176 | {{190, 0}, {554, 368}} 1177 | RubberWindowFrame 1178 | 315 424 744 409 0 0 1440 878 1179 | 1180 | Module 1181 | XCDetailModule 1182 | Proportion 1183 | 554pt 1184 | 1185 | 1186 | Proportion 1187 | 368pt 1188 | 1189 | 1190 | MajorVersion 1191 | 3 1192 | MinorVersion 1193 | 0 1194 | Name 1195 | Breakpoints 1196 | ServiceClasses 1197 | 1198 | PBXSmartGroupTreeModule 1199 | XCDetailModule 1200 | 1201 | StatusbarIsVisible 1202 | 1 1203 | TableOfContents 1204 | 1205 | 1CDDB66807F98D9800BB5817 1206 | 1CDDB66907F98D9800BB5817 1207 | 1CE0B1FE06471DED0097A5F4 1208 | 1CA1AED706398EBD00589147 1209 | 1210 | ToolbarConfiguration 1211 | xcode.toolbar.config.breakpointsV3 1212 | WindowString 1213 | 315 424 744 409 0 0 1440 878 1214 | WindowToolGUID 1215 | 1CDDB66807F98D9800BB5817 1216 | WindowToolIsVisible 1217 | 1 1218 | 1219 | 1220 | Identifier 1221 | windowTool.debugAnimator 1222 | Layout 1223 | 1224 | 1225 | Dock 1226 | 1227 | 1228 | Module 1229 | PBXNavigatorGroup 1230 | Proportion 1231 | 100% 1232 | 1233 | 1234 | Proportion 1235 | 100% 1236 | 1237 | 1238 | Name 1239 | Debug Visualizer 1240 | ServiceClasses 1241 | 1242 | PBXNavigatorGroup 1243 | 1244 | StatusbarIsVisible 1245 | 1 1246 | ToolbarConfiguration 1247 | xcode.toolbar.config.debugAnimatorV3 1248 | WindowString 1249 | 100 100 700 500 0 0 1280 1002 1250 | 1251 | 1252 | Identifier 1253 | windowTool.bookmarks 1254 | Layout 1255 | 1256 | 1257 | Dock 1258 | 1259 | 1260 | Module 1261 | PBXBookmarksModule 1262 | Proportion 1263 | 100% 1264 | 1265 | 1266 | Proportion 1267 | 100% 1268 | 1269 | 1270 | Name 1271 | Bookmarks 1272 | ServiceClasses 1273 | 1274 | PBXBookmarksModule 1275 | 1276 | StatusbarIsVisible 1277 | 0 1278 | WindowString 1279 | 538 42 401 187 0 0 1280 1002 1280 | 1281 | 1282 | Identifier 1283 | windowTool.projectFormatConflicts 1284 | Layout 1285 | 1286 | 1287 | Dock 1288 | 1289 | 1290 | Module 1291 | XCProjectFormatConflictsModule 1292 | Proportion 1293 | 100% 1294 | 1295 | 1296 | Proportion 1297 | 100% 1298 | 1299 | 1300 | Name 1301 | Project Format Conflicts 1302 | ServiceClasses 1303 | 1304 | XCProjectFormatConflictsModule 1305 | 1306 | StatusbarIsVisible 1307 | 0 1308 | WindowContentMinSize 1309 | 450 300 1310 | WindowString 1311 | 50 850 472 307 0 0 1440 877 1312 | 1313 | 1314 | Identifier 1315 | windowTool.classBrowser 1316 | Layout 1317 | 1318 | 1319 | Dock 1320 | 1321 | 1322 | BecomeActive 1323 | 1 1324 | ContentConfiguration 1325 | 1326 | OptionsSetName 1327 | Hierarchy, all classes 1328 | PBXProjectModuleGUID 1329 | 1CA6456E063B45B4001379D8 1330 | PBXProjectModuleLabel 1331 | Class Browser - NSObject 1332 | 1333 | GeometryConfiguration 1334 | 1335 | ClassesFrame 1336 | {{0, 0}, {374, 96}} 1337 | ClassesTreeTableConfiguration 1338 | 1339 | PBXClassNameColumnIdentifier 1340 | 208 1341 | PBXClassBookColumnIdentifier 1342 | 22 1343 | 1344 | Frame 1345 | {{0, 0}, {630, 331}} 1346 | MembersFrame 1347 | {{0, 105}, {374, 395}} 1348 | MembersTreeTableConfiguration 1349 | 1350 | PBXMemberTypeIconColumnIdentifier 1351 | 22 1352 | PBXMemberNameColumnIdentifier 1353 | 216 1354 | PBXMemberTypeColumnIdentifier 1355 | 97 1356 | PBXMemberBookColumnIdentifier 1357 | 22 1358 | 1359 | PBXModuleWindowStatusBarHidden2 1360 | 1 1361 | RubberWindowFrame 1362 | 385 179 630 352 0 0 1440 878 1363 | 1364 | Module 1365 | PBXClassBrowserModule 1366 | Proportion 1367 | 332pt 1368 | 1369 | 1370 | Proportion 1371 | 332pt 1372 | 1373 | 1374 | Name 1375 | Class Browser 1376 | ServiceClasses 1377 | 1378 | PBXClassBrowserModule 1379 | 1380 | StatusbarIsVisible 1381 | 0 1382 | TableOfContents 1383 | 1384 | 1C0AD2AF069F1E9B00FABCE6 1385 | 1C0AD2B0069F1E9B00FABCE6 1386 | 1CA6456E063B45B4001379D8 1387 | 1388 | ToolbarConfiguration 1389 | xcode.toolbar.config.classbrowser 1390 | WindowString 1391 | 385 179 630 352 0 0 1440 878 1392 | WindowToolGUID 1393 | 1C0AD2AF069F1E9B00FABCE6 1394 | WindowToolIsVisible 1395 | 0 1396 | 1397 | 1398 | Identifier 1399 | windowTool.refactoring 1400 | IncludeInToolsMenu 1401 | 0 1402 | Layout 1403 | 1404 | 1405 | Dock 1406 | 1407 | 1408 | BecomeActive 1409 | 1 1410 | GeometryConfiguration 1411 | 1412 | Frame 1413 | {0, 0}, {500, 335} 1414 | RubberWindowFrame 1415 | {0, 0}, {500, 335} 1416 | 1417 | Module 1418 | XCRefactoringModule 1419 | Proportion 1420 | 100% 1421 | 1422 | 1423 | Proportion 1424 | 100% 1425 | 1426 | 1427 | Name 1428 | Refactoring 1429 | ServiceClasses 1430 | 1431 | XCRefactoringModule 1432 | 1433 | WindowString 1434 | 200 200 500 356 0 0 1920 1200 1435 | 1436 | 1437 | 1438 | 1439 | --------------------------------------------------------------------------------