SecAccessControl没有成员takeRetainedValue

时间:2016-07-25 16:05:47

标签: ios swift keychain touch-id

我关注此链接https://www.cigital.com/blog/integrating-touch-id-into-ios-applications/

let sacRef = SecAccessControlCreateWithFlags(kCFAllocatorDefault,
        kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly,
        .UserPresence,
        &error);

let data: NSData = "sup3r_s3cur3_k3y".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!;

    var attributes: NSMutableDictionary = NSMutableDictionary(
        objects: [  kSecClassGenericPassword,
                    service,
                    data,
                    kCFBooleanTrue,
                    sacRef.takeRetainedValue()
        ],
        forKeys: [  kSecClass,
                    kSecAttrService,
                    kSecValueData,
                    kSecUseNoAuthenticationUI,
                    kSecAttrAccessControl]);

var status: OSStatus = SecItemAdd(attributes as CFDictionaryRef, nil);
sacRef.takeRetainedValue()行上

我得到Value of type 'SecAccessControl' has no member 'takeRetainedValue'

如何将TouchID受保护的数据保存到钥匙串中?

1 个答案:

答案 0 :(得分:0)

删除它。自Swift 2.3 +以来,大多数框架不再需要它。

我只是尝试将我的一个Swift 2.0应用程序升级到Swift 2.3。它报告了同样的问题。我只是删除它。它编辑和工作就像一个魅力。