我是iphone开发的新手,我想将CLLocationCoordinate2D
对象存储到NSUserDefaults
。
我在努力
[defaults setObject:location forKey:@"userLocation"];
但它给出了错误'Sending CLLocationCoordinate2D to parameter of incompatible type id'
那么如何将CLLocationCoordinate2D
存储到NSUserDefaults
中呢?
谢谢。
最佳答案
正如pdrcabrod所说,
"默认对象必须是属性列表,即NSData
、NSString
、NSNumber
、NSDate的实例
、NSArray
或 NSDictionary
。”
我用这个来存储,
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/