Objective c 需要一个关于如何为iOS开发存储/加载自定义类的简单示例吗

Objective c 需要一个关于如何为iOS开发存储/加载自定义类的简单示例吗,objective-c,ios,class,Objective C,Ios,Class,我有以下目标c类: @interface LatLongData { NSMutableString *_lat; NSMutableString *_long; NSMutableString *_altitude; } -(LatLongData*) initWithLat:(NSMutableString*) latitude Long:(NSMutableString*) longitude Altitude:(NSMutableString*) altitud

我有以下目标c类:

@interface LatLongData {
    NSMutableString *_lat;
    NSMutableString *_long;
    NSMutableString *_altitude;
}

-(LatLongData*) initWithLat:(NSMutableString*) latitude Long:(NSMutableString*) longitude Altitude:(NSMutableString*) altitude;

@end
如何存储/加载该对象的实例?我尝试过使用以下代码:

LatLongData *data = [[LatLongData alloc] initWithLat:_lat Long:_long Altitude:_altitude];

// Save
NSData *theData = [NSKeyedArchiver archivedDataWithRootObject:data];
[[NSUserDefaults standardUserDefaults] setObject:theData forKey:LatLongDataKey];

//...

// Load
NSData *loadedData = [[NSUserDefaults standardUserDefaults] dataForKey:LatLongDataKey];
LatLongData *ldata = (LatLongData *)[NSKeyedUnarchiver unarchiveObjectWithData:theData];
但是我没有那么幸运。。。 我知道我应该阅读有关核心数据的所有内容。我会的,但在这一点上,让我的小样本发挥作用将是非常好的。

您需要与您的类一起使用。
@接口LatLongData

以下是一些协议方法:

- (id)initWithCoder:(NSCoder *)aDecoder
{
    if ((self = [super init])) {
        lat = [[aDecoder decodeObjectForKey:@"lat"] copy];
        long = [[aDecoder decodeObjectForKey:@"long"] copy];
        alt = [[aDecoder decodeObjectForKey:@"alt"] copy];
    }
    return self;
}

- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:lat forKey:@"lat"];
    [aCoder encodeObject:long forKey:@"long"];
    [aCoder encodeObject:alt forKey:@"alt"];
}
p.S.您需要将最后一行的数据替换为
loadedData