Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Arrays 在MapView上保存注释_Arrays_Swift3_Mapkit_Nsuserdefaults_Mapkitannotation - Fatal编程技术网

Arrays 在MapView上保存注释

Arrays 在MapView上保存注释,arrays,swift3,mapkit,nsuserdefaults,mapkitannotation,Arrays,Swift3,Mapkit,Nsuserdefaults,Mapkitannotation,目前,我正在开发的应用程序会创建自定义注释,但当用户使用mapView切换页面时,这些注释都会被卸载。我正在将它们保存到自定义数组中,但UserDefaults不允许我保存该数组。是否有一种简单的方法来保存放置的注释,或者如何让UserDefaults保存数组。我的数组是这样的: var mapAnnotations = [pinLocations]() struct pinLocations { let latitude: Double let longnitude: Doub

目前,我正在开发的应用程序会创建自定义注释,但当用户使用mapView切换页面时,这些注释都会被卸载。我正在将它们保存到自定义数组中,但UserDefaults不允许我保存该数组。是否有一种简单的方法来保存放置的注释,或者如何让UserDefaults保存数组。我的数组是这样的:

var mapAnnotations = [pinLocations]()
struct pinLocations {
    let latitude: Double
    let longnitude: Double
    let name: Double
    let time: String
}

将您的结构改为类,从NSObject派生,并通过实现
init?(coder:)
encode(with:)
来采用NSCoding。通过调用
NSKeyedArchiver.archivedData(withRootObject:)
(反之,通过调用
NSKeyedUnarchiver.unarchiveObject(with:)
)可以将此类的数组归档到NSData中并保存到UserDefaults中。

这是一个可归档自定义类的示例: