iphone - 将 CLLocationCoordinate2D 存储到 NSUserDefaults

标签 iphone ios objective-c nsuserdefaults cllocationmanager

我是iphone开发的新手,我想将CLLocationCoordinate2D对象存储到NSUserDefaults。 我在努力

    [defaults setObject:location forKey:@"userLocation"];

但它给出了错误'Sending CLLocationCoordinate2D to parameter of incompatible type id'

那么如何将CLLocationCoordinate2D存储到NSUserDefaults中呢? 谢谢。

最佳答案

正如pdrcabrod所说,

"默认对象必须是属性列表,即NSDataNSStringNSNumberNSDate的实例NSArrayNSDictionary。”

我用这个来存储,

    NSNumber *lat = [NSNumber numberWithDouble:location.latitude];
    NSNumber *lon = [NSNumber numberWithDouble:location.longitude];
    NSDictionary *userLocation=@{@"lat":lat,@"long":lon};

    [[NSUserDefaults standardUserDefaults] setObject:userLocation forKey:@"userLocation"];
    [[NSUserDefaults standardUserDefaults] synchronize];

和访问使用,

    NSDictionary *userLoc=[[NSUserDefaults standardUserDefaults] objectForKey:@"userLocation"];
    NSLog(@"lat %@",[userLoc objectForKey:@"lat"]);
    NSLog(@"long %@",[userLoc objectForKey:@"long"]);

关于iphone - 将 CLLocationCoordinate2D 存储到 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18910612/

相关文章:

iphone - 限制核心图中的滚动

iPhone 在核心数据中保存多个对象?

iphone - 后台线程绘图中的错误访问

iphone - 下载图像时出现内存警告和应用程序崩溃

ios - 从“TCHMessageType”强制转换为无关类型“String”总是失败

iphone - 获取 iphone objective-c 上已安装应用程序的列表

iOS 在 UITableView 中创建 "copy paste"像弹出窗口(UIMenuController)

ios - 如何处理 Apple Watch 上的按钮点击?

iphone - 将 JSON 数据写入磁盘

objective-c - NSCalendar 崩溃应用程序