gpt4 book ai didi

objective-c - 保存 MKOverlayView 数组 -> plist

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:05 27 4
gpt4 key购买 nike

我有一个涉及大量 MKOverlayView 的应用程序。每次将一个添加到 map 时,它也会添加到一个 NSArray 中。当用户希望停止添加覆盖时,我希望他们能够保存它们,并在以后能够访问它们。如何将 MKOverlayViews 数组存储到 plist 中,然后稍后将它们重新加载回 mapView 中?这可能吗?

我正在尝试使用此代码从数组中获取 MKPolylineViews 并将相应的 MKPolylines 添加到 map ,但它在“[mapView addOverlay....”行崩溃。

将数组写入plist:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if(overlays)
{
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:overlays];
[defaults setObject:data forKey:@"theKey"];
[defaults synchronize];
}

从plist中读取数据:

NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"theKey"];
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:data];

for(MKPolylineView* a in arr)
[mapView addOverlay:a.polyline];

最佳答案

我会考虑使用 NSArchiver 或 NSKeyedArchiver 进行归档,然后将它们写入磁盘。可能比试图以某种方式将它们压缩到 plist 中更好......

关于objective-c - 保存 MKOverlayView 数组 -> plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7668631/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com