这是我的代码..为什么它不会在设备上添加对象数组? 也许阵列不能从文件读取?我将文件写入文档目录,但可能会出错?谢谢...在模拟器上工作,无法在iPhone设备上工作
if (contactsToProcess==nil)
{
contactsToProcess=[[NSMutableArray alloc] init];
NSLog(@"Array with objs initialized");
}
contactsToProcess=[NSKeyedUnarchiver unarchiveObjectWithFile:fPath()];
[contactsToProcess addObject:cont];
NSLog(@"Object added to file:");
for(Contact *cn in contactsToProcess)
{
NSLog(@"%@", cn.fName);
}
[NSKeyedArchiver archiveRootObject:contactsToProcess toFile:fPath()];
fPath()的作用:
NSString* PathforResources(NSString* filename)
{
NSString *leftpart=[filename stringByDeletingPathExtension];
NSString *extension=[filename pathExtension];
return [[NSBundle mainBundle] pathForResource:leftpart ofType:extension];
}
NSString* DocumentsDirectory()
{
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDirectory, YES);
return [paths objectAtIndex:0];
}
NSString* fPath()
{
return [DocumentsDirectory() stringByAppendingPathComponent:@"quickdial.xml"];
}
前6行('如果contactsToProcess == nil {...}')无用,因为您在第6行重新指定了“contactsToProcess”。 – Cyrille
'fPath()'返回的路径是什么? – PeyloW
它返回Documents目录的路径:NSString * PathforResources(NSString * filename) { \t NSString * leftpart = [filename stringByDeletingPathExtension]; \t NSString * extension = [filename pathExtension]; \t return [[NSBundle mainBundle] pathForResource:leftpart ofType:extension]; \t } 的NSString * DocumentsDirectory() { \t的NSArray *路径= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDirectory,YES); \t return [paths objectAtIndex:0]; \t } 的NSString * fPath() { \t返回[DocumentsDirectory()stringByAppendingPathComponent:@ “quickdial.xml”]; } –