gpt4 book ai didi

swift - 为什么我不能快速删除 NSUserDefaults 键?

转载 作者:行者123 更新时间:2023-11-30 13:39:44 25 4
gpt4 key购买 nike

当我运行以下测试用例时,testRemovePref 方法失败,因为它实际上并未删除该值。我正在使用 Xcode 7.2。为什么会发生这种情况?

编辑:只有当测试属于框架库时才会发生这种情况。在应用程序中运行时,下面的测试似乎工作正常。奇怪。

import XCTest
class NSUserDefaultsTests: XCTestCase {
func testSetPref() {
let prefs = NSUserDefaults.standardUserDefaults()
prefs.setValue("value1", forKeyPath: "testKey")
let val : String? = prefs.stringForKey("testKey")
print("value=\(val)") // prints "value1"
XCTAssertEqual("value1", val)

}

func testRemovePref() {
let prefs = NSUserDefaults.standardUserDefaults()
prefs.removeObjectForKey("testKey")

let val : String? = prefs.stringForKey("testKey")
print("value=\(val)") // prints "value1"
XCTAssertNil(val)
}
}

最佳答案

This is only occurring when the tests belong to a Framework Library. The tests below seem to work fine when run in an Application.

当您将应用程序发送到后台时,它会自动同步默认值。测试不会发生这种情况。尝试添加:

prefs.synchronize()

关于swift - 为什么我不能快速删除 NSUserDefaults 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35710828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com