NSArray *t_annos;
@try
{
NSLog(@" --- pointer before = %ld --- ", (long) t_annos);
t_annos
= [NSKeyedUnarchiver unarchiveObjectWithFile : d_path];
NSLog(@" --- pointer after = %ld --- ", (long) t_annos);
}
@catch (NSException *e)
{
NSLog(@" --- e caught ---");
t_annos = nil;
}
请考虑上述声明,该情况是:关于从NSException“NSKeyedUnarchiver unarchiveObjectWithFile:”
根据文件,如果d_path没有指向一个有效的异常应提高存档。但即使d_path被故意设置为无效路径,也不会发生异常。
已测试的模拟器的xcode和测试色器件(iphone)二者的代码。尽管模拟器和电话设备都没有发现任何异常情况,但手机在模拟器上按照预期解除了对阵列的存档操作,程序在输出处停止输出:“程序接收信号:”EXC_BAD_ACCESS“”。
“坏访问”错误应该来在“unarchiveObjectWithFile”的声明,因为该计划第一的NSLog输出后停止。
当尝试与单个的NSString对象存档和取消存档,模拟器和测试装置都没有问题。但即使路径错误也没有发现异常。
我可能会缺少某些东西,希望有人知道可以提供帮助。
请更多的创意与您的图书。我们知道这是一个问题。 – Mat
标题编辑,感谢您指出... – Stanley
什么对象在你的数组?任何自定义类? – mja