问题描述
在Xcode Playground中,测试闭包代码:
func performAsyncTask(completion: @escaping () -> Void) {
// 异步任务
DispatchQueue.global().async { // 报错行
// 模拟耗时操作
sleep(2) // 报错行
print("异步任务完成")
// 调用闭包
completion()
}
}
performAsyncTask {
print("执行完成后的回调")
}
发现报错为:
Cannot find 'DispatchQueue' in scope
Cannot find 'sleep' in scope
问题在于DispatchQueue 和 sleep 等功能属于Foundation框架。
因此,在Playground中使用它们时需要显式导入。
import Foundation
func performAsyncTask(completion: @escaping () -> Void) {
// 异步任务
DispatchQueue.global().async {
// 模拟耗时操作
sleep(2)
print("异步任务完成")
// 调用闭包
completion()
}
}
performAsyncTask {
print("执行完成后的回调")
}
类似问题
Xcode报错:Cannot infer contextual base in reference to member ‘utf8’: https://fangjunyu.com/2024/10/31/xcode%e6%8a%a5%e9%94%99%ef%bc%9acannot-infer-contextual-base-in-reference-to-member-utf8/