Here is the Swift version, note that in Xcode 7.2.1, "init (CSIdentity :)" is not available in Swift: CSIdentity is not available in Swift. "
Instead, we can use:
CBIdentity (uniqueIdentifier uuid: NSUUID, authority: CBIdentityAuthority)
func getSystemUsers()->[CBIdentity]{
let defaultAuthority = CSGetLocalIdentityAuthority().takeUnretainedValue()
let identityClass = kCSIdentityClassUser
let query = CSIdentityQueryCreate(nil, identityClass, defaultAuthority).takeRetainedValue()
var error : Unmanaged<CFErrorRef>? = nil
CSIdentityQueryExecute(query, 0, &error)
let results = CSIdentityQueryCopyResults(query).takeRetainedValue()
let resultsCount = CFArrayGetCount(results)
var allUsersArray = [CBIdentity]()
for idx in 0...resultsCount-1 {
let identity = unsafeBitCast(CFArrayGetValueAtIndex(results,idx),CSIdentityRef.self)
let uuidString = CFUUIDCreateString(nil, CSIdentityGetUUID(identity).takeUnretainedValue())
if let uuidNS = NSUUID(UUIDString: uuidString as String), let identityObject = CBIdentity(uniqueIdentifier: uuidNS, authority: CBIdentityAuthority.defaultIdentityAuthority()){
allUsersArray.append(identityObject)
}
}
return allUsersArray
}
source
share