SwiftKeychainWrapper xctest 返回 nil
Posted
技术标签:
【中文标题】SwiftKeychainWrapper xctest 返回 nil【英文标题】:SwiftKeychainWrapper xctest returning nil 【发布时间】:2016-05-15 18:36:22 【问题描述】:我正在尝试使用钥匙串进行基本的单元测试。我可以成功设置键的值('setString' 返回 true),但是,当我尝试检索值时,即使延迟 5 秒后,返回仍然为零:
class MyKeychainTest: XCTestCase
func checkKeychain(timer: NSTimer)
debugPrint("check keychain...")
let userInfo = timer.userInfo as! [String: AnyObject]
let expectation = userInfo["expectation"] as! XCTestExpectation
let res = KeychainWrapper.objectForKey("myKey")
debugPrint("got res: \(res)")
XCTAssertNotNil(res)
expectation.fulfill()
func testKeychain()
let expectation = expectationWithDescription("gotKey")
let success = KeychainWrapper.setString("foo", forKey: "myKey")
debugPrint("set key?: \(success)")
NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: #selector(self.checkKeychain)
, userInfo: ["expectation": expectation ], repeats: false)
self.waitForExpectationsWithTimeout(10, handler: nil)
有什么可能导致这种情况的想法吗?
谢谢
【问题讨论】:
【参考方案1】:不小心使用了错误的方法来获取密钥。而不是 KeychainWrapper.objectForKey("myKey")
使用 KeychainWrapper.stringForKey("myKey")
工作。奇怪的是,在前一种情况下甚至没有返回一个对象
【讨论】:
以上是关于SwiftKeychainWrapper xctest 返回 nil的主要内容,如果未能解决你的问题,请参考以下文章