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对象.
非常感谢
编辑:重做整个事情.
保存:
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)
应该更好地工作;)
| 归档时间: |
|
| 查看次数: |
6043 次 |
| 最近记录: |