我不知道为什么(所以我将来会删除那个 plist 文件)但我有一些解决方案,见下文。
[解决方案?1] 嗨,即使我也面临同样的问题。我跟踪到 NSKeyedUnarchiver unarchiveObjectWithData:fileData] 的工作流程,并检查了文件 fileData 的值,它接近 .4mb,因此文件及其内容数据肯定会到达那里。
显然 NSKeyedUnarchiver unarchiveObjectWithData: 有错误。
NSKeyedUnarchiver unarchiveObjectWithFile: 在 init: 方法中返回 nil
通过 suds89 ( https://github.com/suds89 )
[解决方案?2]我也为这个确切的问题苦苦挣扎了一段时间,并认为取消归档在模拟器上正常工作,但在设备上却不行。
我注意到 fileData 的字节大小不同:设备上的 180085 和模拟器上的 496050,因此在数据不完整的情况下,取消归档显然无法正常工作。
解决方案是确保将 NBPhoneNumberMetadata.plist 不仅放入 Resources 文件夹,而且实际上放入 Supporting Files 文件夹,然后对项目进行清理,重新构建并运行它。奇迹般有效!:-)
通过 irinutze ( https://github.com/irinutze )