Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在应用程序关闭后将PIN保存到地图_Objective C_Memory Management_Mkmapview - Fatal编程技术网

Objective c 如何在应用程序关闭后将PIN保存到地图

Objective c 如何在应用程序关闭后将PIN保存到地图,objective-c,memory-management,mkmapview,Objective C,Memory Management,Mkmapview,因此,在我的应用程序中,用户在地图上放置PIN。我不知道的是如何在应用程序中保存PIN,这样当用户再次打开应用程序并转到mapView时,上次打开应用程序时放在地图上的PIN仍然在地图上。有人知道我该怎么做吗 我建议您从该销获取坐标。您可以先将它们保存在NSMutableArray中。完成后,您可以将此阵列保存在NSKeyedArchive中,如下所示 NSMutableData *data = [[NSMutableData alloc]init]; NSKeyedArchiv

因此,在我的应用程序中,用户在地图上放置PIN。我不知道的是如何在应用程序中保存PIN,这样当用户再次打开应用程序并转到mapView时,上次打开应用程序时放在地图上的PIN仍然在地图上。有人知道我该怎么做吗

我建议您从该销获取坐标。您可以先将它们保存在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;

}

并根据保存的坐标在地图上定位

添加到您的答案中:在
NSArray*annotations
属性中保留其PIN。什么是archivePath?那是存储数据的文件吗?是的,它是文件的路径。