我读了Easy way to see saved NSUserDefaults?
这个问题我找到了应用程序的.plist文件,但测试包的位置在哪里?
答案 0 :(得分:5)
如果您使用Xcode 4与OCUnit的集成,它会将测试包注入正在运行的应用程序中。因此,NSUserDefaults保存在应用程序本身中。这对于单元测试来说是个问题:当您手动运行应用程序时,您的默认值可能已被测试覆盖。
不使用直接使用[NSUserDefaults standardUserDefaults]
,而是使用依赖注入,将用户默认值作为初始化参数传递。然后你可以传入一个你可以查询的测试双。 (依赖注入的替代方法是从辅助方法返回NSUserDefaults,重写该方法以在必要时返回测试双精度。)
答案 1 :(得分:2)
在我的环境中(Xcode 4.2,在模拟器中运行测试)NSUserDefaults
写入以下文件:
~/Library/Application Support/iPhone Simulator/Library/Preferences/otest.plist`
我猜你没有看到该文件,因为NSUserDefaults
的缓存机制(在类引用中有解释),并且因为你的项目的单元测试运行时间不够长,无法经过缓存时间间隔。
otest.plist
实例方法NSUserDefault
,则保证写入{p> synchronize
。
答案 2 :(得分:1)
似乎OCUnit不会持久存储NSUserDefaults
而是存储在内存中。但是,我可能是错的。