相关疑难解决方法(0)

何时使用takeUnretainedValue()或takeRetainedValue()来检索Swift中的非托管对象?

根据使用Swift与Cocoa和Objective-C,您可以使用takeUnretainedValue()takeRetainedValue()告诉Swift如何管理对象的内存,如下所示:

func StringByAddingTwoStrings(CFString!, CFString!) -> Unmanaged<CFString>!
Run Code Online (Sandbox Code Playgroud)

我何时必须使用takeUnretainedValue()takeRetainedValue()

当我使用ARC时,它总是takeUnretainedValue()吗?

iphone objective-c ios swift

32
推荐指数
2
解决办法
8279
查看次数

Swift中的UTTypeCreatePreferredIdentifierForTag和CFStringRef

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")
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

错误:'Unmanaged'不能转换为'CFStringRef'

在线

var fileUTI:CFStringRef = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,fileExtension,nil)

有任何想法吗 ??谢谢

swift ios8

8
推荐指数
1
解决办法
7210
查看次数

如何获取 UTType 图像、音频和视频的所有扩展

有没有办法将所有不同的UTType 扩展类型获取为字符串?我专门需要它们来处理图像、音频和视频。

我遵循了这个答案,但它没有给我所有的扩展

var types = [String]()

let utiTypes = [kUTTypeImage, kUTTypeMovie, kUTTypeVideo, kUTTypeMP3, kUTTypeAudio, kUTTypeQuickTimeMovie, kUTTypeMPEG, kUTTypeMPEG2Video, kUTTypeMPEG2TransportStream, kUTTypeMPEG4, kUTTypeMPEG4Audio, kUTTypeAppleProtectedMPEG4Audio, kUTTypeAppleProtectedMPEG4Video, kUTTypeAVIMovie, kUTTypeAudioInterchangeFileFormat, kUTTypeWaveformAudio, kUTTypeMIDIAudio, kUTTypeLivePhoto, kUTTypeTIFF, kUTTypeGIF, kUTTypeQuickTimeImage, kUTTypeAppleICNS]

for type in utiTypes {
            
    let str = String(type)
            
    guard let utiStr = fileExtension(for: str) else { continue }

    types.appent(utiStr)
}

dump(types)
Run Code Online (Sandbox Code Playgroud)

结果是

15 elements // there are really 21 types
  - "jpeg"
  - "png"
  - "mov"
  - "mpg"
  - "m2v"
  - "ts" …
Run Code Online (Sandbox Code Playgroud)

ios swift uidocumentpickerviewcontroller mobilecoreservices uttype

8
推荐指数
2
解决办法
9617
查看次数