相关疑难解决方法(0)

使用Swift添加项目和查询iOS Keychain

我无法将所有的Objective C代码示例可用于添加数据和查询从数据iOS Keychain到斯威夫特.我正在尝试对字符串(访问令牌)进行基本存储并将其读回.我已经看过Stack Overflow上的其他一些问题,但我无法让它工作.我试图拼凑各种来源的解决方案.

编辑1:我尝试了一个更基本的设置,因为我认为我的self.defaultKeychainQuery可能搞砸了.我已将下面的代码更新为最新版本.

编辑2:搞定了.我没有正确地将数据值添加到保存查询中.我需要将字符串转换为NSData.我已将下面的代码更新为最新的工作版本.

编辑3:正如Xerxes在下面指出的那样,由于Dictionaries存在一些问题,此代码不适用于高于Beta 1的Xcode版本.如果你知道对此的修复,请告诉我.

更新:我把它变成了一个用Swift编写的一个名为Locksmith的钥匙串库.


保存

class func save(service: NSString, data: NSString) {
  var dataFromString: NSData = data.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
  // Instantiate a new default keychain query
  var keychainQuery: NSMutableDictionary = NSMutableDictionary(objects: [kSecClassGenericPassword, service, userAccount, dataFromString], forKeys: [kSecClass, kSecAttrService, kSecAttrAccount, kSecValueData])

  // Delete any existing items
  SecItemDelete(keychainQuery as CFDictionaryRef)

  // Add the new keychain item
  var status: OSStatus = SecItemAdd(keychainQuery as …
Run Code Online (Sandbox Code Playgroud)

keychain local-storage ios swift

20
推荐指数
2
解决办法
3万
查看次数

标签 统计

ios ×1

keychain ×1

local-storage ×1

swift ×1