import Foundation
import MobileCoreServices
func checkFileExtension(fileName: NSString){
println(fileName)
var fileExtension:CFStringRef = fileName.pathExtension
println(fileExtension)
var fileUTI:CFStringRef = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, nil)
println(fileUTI)
let testBool = UTTypeConformsTo(fileUTI, kUTTypeImage) != 0
if testBool{
println("image")
}
}
ottengo questo erroreUTTypeCreatePreferredIdentifierForTag e CFStringRef a Swift
errore: 'gestito' non è convertibile in 'CFStringRef'
alla linea
var fileUTI: CFStringRef = UTTypeCreatePreferredIdentifierForTag (kUTTagClassFilenameExtension, fileExtension, nil)
qualche idea ?? Grazie
La scelta di takeRetainedValue vs takeUnretainedValue dipende solo (se ho capito la documentazione) in merito alla funzione di nucleo Fondazione restituisce un (1) trattenuta oggetto o non. UTTypeCreatePreferredIdentifierForTag() ha "Crea" nel suo nome, quindi in base alle regole di gestione della memoria che restituisce un oggetto (+1) mantenuto che il chiamante deve rilasciare alla fine. Quindi devi chiamare takeRetainedValue qui, altrimenti l'oggetto non verrebbe mai rilasciato e avrai una perdita. –
Confronta "Crea regola" in https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html. –
grazie per la risposta completa! mi ha davvero aiutato! – pbeo