gpt4 book ai didi

swift - 循环遍历 CFURL 的 CFArray

转载 作者:行者123 更新时间:2023-11-28 11:30:50 24 4
gpt4 key购买 nike

使用 Swift,我试图循环遍历 CFURL 的 CFArray,但出现了 EXC_BAD_INSTRUCTION 错误。

let apps = LSCopyApplicationURLsForURL(NSURL(string: "http://www.yahoo.com")! as CFURL, LSRolesMask.all)!

let finalArray = apps.takeRetainedValue()

let count = CFArrayGetCount(finalArray)

for ix in 0...count-1 {
let url = CFArrayGetValueAtIndex(finalArray, ix) as! CFURL
print(url)
}

我做错了什么?

最佳答案

你真的想一直待在 CoreFoundation 的深渊里吗? 😉 将数组转换为 [URL]

if let apps = LSCopyApplicationURLsForURL(URL(string: "http://www.yahoo.com")! as CFURL, LSRolesMask.all)?.takeRetainedValue() {
for url in apps as! [URL] {
print(url)
}
}

顺便说一下,错误的发生是因为 CFArrayGetValueAtIndex 返回了一个无法转换为 CFURL 的指针

你必须这样写

for ix in 0..<count {
let url = unsafeBitCast(CFArrayGetValueAtIndex(finalArray, ix), to: URL.self)
print(url)
}

关于swift - 循环遍历 CFURL 的 CFArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56744576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com