我正在尝试将多个位置保存到一个plist文件中以备后用,但经过一番搜索后我发现CLLocation数组本身不能被保存,因此我想知道有没有其他更好/更智能/更可靠的方法来实现这一目标。 我考虑创建一对类来将单个CLLocation对象“序列化”/“反序列化”为NSDictionary,然后将这些NSDictionary的数组存储到plist文件中,但我不确定是否还有其他更好的方式。非常感谢您提前的帮助。
编辑:这是我用来在plist中保存数据的函数(c_propertyName从答案中获取代码)。
编辑:这是我用来在plist中保存数据的函数(c_propertyName从答案中获取代码)。
- (void) addLocation {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"/Locations.plist"];
NSArray *keys = [curLocation c_propertyNames];
NSDictionary *dict = [curLocation dictionaryWithValuesForKeys:keys];
[dict writeToFile: path atomically:YES];
}
编辑2-解决方案:
好的,我已经找到了答案。在下面,我发布了两个选项的解决方案。