2012-12-15 3 views
0

내 앱에서 사용자가지도에 핀을 떨어 뜨립니다. 내가 모르는 부분은 앱에 핀을 저장하는 방법입니다. 사용자가 앱을 다시 열고 mapView로 이동하면 앱이 마지막으로 열렸을 때지도 위에 놓인 핀이 계속 표시됩니다. 지도. 아무도 내가 이것에 대해 어떻게 생각하는지 알아?앱이 닫히면지도를 핀에 저장하는 법

답변

1

해당 핀의 좌표를 가져와야합니다. 먼저 NSMutableArray에 저장할 수 있습니다. 에 따라,

if ([[NSFileManager defaultManager] fileExistsAtPath:archivePath]) { 


    NSData *data = [NSData dataWithContentsOfFile:archivePath]; 

    NSMutableArray *pinCollection = [[NSMutableArray alloc] init]; 

    if (data){ 
     pinCollection = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 
    } 
    else pinCollection = nil; 

    return pinCollection; 

} 

및지도에 핀 위치 : 당신이 당신의 응용 프로그램을 실행하면이

NSMutableData *data   = [[NSMutableData alloc]init]; 
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 

[archiver encodeObject:pinArray forKey:@"PinArray"]; 
[archiver finishEncoding]; 
[data writeToFile:archivePath atomically:YES]; 

BOOL success = [NSKeyedArchiver archiveRootObject:pinArray toFile:archivePath]; 

같은 NSKeyedArchive이 배열을 절약 할 수있다 완료되면,이 아카이브를 읽을 수 있습니다 저장된 좌표.

+1

답변에 추가하려면 다음을 수행하십시오. [MKMapView] (http://developer.apple.com/library/ios/documentation/MapKit/Reference/MKMapView_Class/MKMapView/MKMapView.html#//apple_ref/doc/uid/TP40008205 -CH3-SW35)는 'NSArray * annotations' 속성에 핀을 보유합니다. –

+0

archivePath는 무엇입니까? 데이터가 저장된 파일입니까? –

+1

예, 파일 경로입니다. – dalipsia

관련 문제