【问题标题】:Cannot invoke initializer for type 'NSDictionary' in Swift2.0无法在 Swift2.0 中调用类型“NSDictionary”的初始化程序
【发布时间】:2016-05-25 17:57:23
【问题描述】:

这可能很简单,但是由于我对 Swift 的经验不是很丰富,所以我不知道如何将此行移植到 Swift 2.0。

func setPasscode(identifier: String, passcode: String) {
    var dataFromString: NSData = passcode.dataUsingEncoding(NSUTF8StringEncoding)!;

    var keychainQuery = NSDictionary(objects: [kSecClassGenericPassword, identifier, dataFromString], forKeys: [kSecClass, kSecAttrService, kSecValueData])

    SecItemDelete(keychainQuery as CFDictionaryRef);
    var status: OSStatus = SecItemAdd(keychainQuery as CFDictionaryRef, nil);
}

错误信息: 无法使用类型为“(对象:NSArray,forKeys:[CFString])”的参数列表调用类型“NSDictionary”的初始化程序

【问题讨论】:

    标签: ios swift


    【解决方案1】:
    let identifier = "someIdentifier"
    let dataFromString = "someData"
    let values = [kSecClassGenericPassword, identifier, dataFromString]
    let keys: [NSString] = [kSecClass, kSecAttrService, kSecValueData]
    let keychainQuery = NSDictionary(objects: values, forKeys: keys)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多