Chr*_*ris 21 iphone file nsarray
我试图将一个内部有一些字典的数组保存到plist文件中,但它失败了.我没有得到任何错误.我在代码中使用另一个数组执行完全相同的几行,并且可以工作..我无法弄清楚为什么它不保存文件.
这是我保存文件的地方:(参见下面的一些调试器输出)
// When built parse through dictionary and save to file
for ( NSString *keys in [dicByCountry allKeys] )
{
NSArray *arrr = [[NSArray alloc] initWithArray:[dicByCountry objectForKey:keys]];
NSString *fname = [self filePath:[NSString stringWithFormat:@"regions.cid%@.plist",keys]];
if (![arrr writeToFile:fname atomically:YES])
NSLog(@"Could not write file regions.cid%@.plist",keys);
}
Run Code Online (Sandbox Code Playgroud)
这里有一些GDB输出
(gdb) po fname
/Users/chris/Library/Application Support/iPhone Simulator/4.0/Applications/44A9FF9E-5715-4BF0-9BE2-525883281420/Documents/regions.cid0.plist
(gdb) po arrr
<__NSArrayI 0x8022b30>(
{
countryID = "<null>";
region = "?\U00e2vora";
regionID = 16;
},
{
countryID = "<null>";
region = Vicenza;
regionID = 14;
},
{
countryID = "<null>";
region = Wales;
regionID = 23;
}
)
Run Code Online (Sandbox Code Playgroud)
Sau*_*hwa 27
我在序列化之前将NSArray或NSDictionary转换为NSData.以下是nsarray上用于序列化和反序列化的类别.这舒适处理一些数据是nsnull
@implementation NSArray(Plist)
-(BOOL)writeToPlistFile:(NSString*)filename{
NSData * data = [NSKeyedArchiver archivedDataWithRootObject:self];
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentsDirectory = [paths objectAtIndex:0];
NSString * path = [documentsDirectory stringByAppendingPathComponent:filename];
BOOL didWriteSuccessfull = [data writeToFile:path atomically:YES];
return didWriteSuccessfull;
}
+(NSArray*)readFromPlistFile:(NSString*)filename{
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * documentsDirectory = [paths objectAtIndex:0];
NSString * path = [documentsDirectory stringByAppendingPathComponent:filename];
NSData * data = [NSData dataWithContentsOfFile:path];
return [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
@end //needs to be set for implementation
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17177 次 |
最近记录: |