以下是我的代码,我无法弄清楚释放2d数组出错的地方。 我知道错误发生在这一行:free(arr [i]);我也知道我必须执行此循环以释放每个整数,然后再释放整个数组。有人可以在这里发现错误吗?我没有编译错误,但是一旦运行我的可执行文件,免费功能就会有巨大的回溯输出。
func fetchDataResult(for video: Video,completion: @escaping (Results<Any>) -> ()) {
guard let videoKey = video.videoID else {
preconditionFailure("Video expected to have a video id")
}
if let image = imageStore.image(forKey: videoKey) {
OperationQueue.main.addOperation {
completion(.success(image))
}
return
}
guard let videoURL = video.url else {
preconditionFailure("Video expected to have video url")
}
let request = URLRequest(url: videoURL)
let task = sessions.dataTask(with: request) { (data,response,error) in
let result = self.processImageRequest(data: data,error: error)
if case let .success(image) = result {
self.imageStore.setImage(image,forKey: videoKey)
}
OperationQueue.main.addOperation {
completion(result)
}
}
task.resume()
}
private func processDataRequest(data: Data?,error: Error?) -> Results<Any> {
guard
let imageData = data,let image = UIImage(data: imageData) else {
if data == nil {
return .failure(error!)
} else {
return .failure(ThumbnailError.thumbnailCreationError)
}
}
return .success(image)
}