2016-07-25 62 views
1

我followig上線sacRef.takeRetainedValue()此鏈接https://www.cigital.com/blog/integrating-touch-id-into-ios-applications/SecAccessControl沒有成員takeRetainedValue

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); 

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

我應該如何保存TouchID保護的數據到鑰匙扣?

+1

你試過用'sacRef'替換'sacRef.takeRetainedValue()'嗎? - 可能是這個問題相同的問題:http://stackoverflow.com/questions/32023477/swift-secpolicy-does-not-have-a-member-named-takeretainedvalue。 –

回答

0

只要刪除它。自Swift 2.3+以來,大多數框架不再需要它。

我只是試圖將我的Swift 2.0應用程序之一升級到Swift 2.3。它報告了同樣的問題。我只是刪除它。它編譯和工作就像一個魅力。