将NSmutableArray保存到文件并加载

Ami*_*mir 2 serialization objective-c nsmutablearray

我写的应用程序为我的iPhone,我想保存一些NSmutablearray文件,并在以后加载它.我读到有关NSArchiver的信息,但我不明白如何使用我的calss:

@interface Shop : NSObject 
{    
    NSString       *m_Name;
    NSString       *m_Description;
    NSString       *m_Category;
    NSString       *m_BestSaleDesc;
    NSString       *m_AdditionalInfo;   
    NSInteger       m_ShopId;
    NSInteger       m_ChainId;
    NSMutableArray *m_SalesList;
    NSData         *m_Icon;
    bool            m_Filtered;
    bool            m_Deleted;
    bool            m_Hidden;
}
Run Code Online (Sandbox Code Playgroud)

有人可以给我一些示例代码,说明如何将calss Shop的NSmutableArray保存到文件名ShopFile.sav,然后再如何将它再次加载到NSmutableArray对象.
非常感谢

Gle*_*ith 7

编辑:重做整个事情.
保存:

NSMutableDictionary *saveDict = [NSMutableDictionary dictionary];
[saveDict setValue:m_Name forKey:@"m_Name"];
[saveDict setValue:m_Description forKey:@"m_Description"];
[saveDict setValue:m_Category forKey:@"m_Category"];
[saveDict setValue:m_BestSaleDesc forKey:@"m_BestSaleDesc"];
[saveDict setValue:m_AdditionalInfo forKey:@"m_AdditionalInfo"];
[saveDict setValue:[NSNumber numberWithInt:m_ShopId] forKey:@"m_ShopId"];
[saveDict setValue:[NSNumber numberWithInt:m_ChainId] forKey:@"m_ChainId"];
[saveDict setValue:m_SalesList forKey:@"m_SalesList"];
[saveDict setValue:m_Icon forKey:@"m_Icon"];
[saveDict setValue:[NSNumber numberWithBool:m_Filtered] forKey:@"m_Filtered"];
[saveDict setValue:[NSNumber numberWithBool:m_Deleted] forKey:@"m_Deleted"];
[saveDict setValue:[NSNumber numberWithBool:m_Hidden] forKey:@"m_Hidden"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"/ShopFile.sav"];
[saveDict writeToFile:filePath atomically:YES];
Run Code Online (Sandbox Code Playgroud)

加载:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"/ShopFile.sav"];
NSDictionary *loadDict = [NSDictionary dictionaryWithContentsOfFile:filePath];
m_Name =            [loadDict valueForKey:@"m_Name"];
m_Description =     [loadDict valueForKey:@"m_Description"];
m_Category =        [loadDict valueForKey:@"m_Category"];
m_BestSaleDesc =    [loadDict valueForKey:@"m_BestSaleDesc"];
m_AdditionalInfo =  [loadDict valueForKey:@"m_AdditionalInfo"];
m_ShopId =         [[loadDict valueForKey:@"m_ShopId"] intValue];
m_ChainID =        [[loadDict valueForKey:@"m_ChainId"] intValue];
m_SalesList =       [loadDict valueForKey:@"m_SalesList"];
m_Icon =            [loadDict valueForKey:@"m_Icon"];
m_Filtered =       [[loadDict valueForKey:@"m_Filtered"] boolValue];
m_Deleted =        [[loadDict valueForKey:@"m_Deleted"] boolValue];
m_Hidden =         [[loadDict valueForKey:@"m_Hidden"] boolValue];
Run Code Online (Sandbox Code Playgroud)

应该更好地工作;)