一旦应用关闭,如何将引脚保存到地图

时间:2012-12-15 01:59:33

标签: objective-c memory-management mkmapview

因此,在我的应用中,用户会将地图上的引脚丢弃。我不知道的是如何在应用程序中保存引脚,以便当用户再次打开应用程序并转到mapView时,上次应用程序打开时放到地图上的引脚仍然在地图。有谁知道我怎么做这个?

1 个答案:

答案 0 :(得分:1)

我建议您从那些引脚获得坐标。您可以先将它们保存在NSMutableArray中。完成后,您可以将此数组保存在NSKeyedArchive中,如此

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];

启动应用时,您可以阅读此存档:

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;

}

并根据保存的坐标将您的针脚定位在地图上。