UITableView 错误:使用未声明的类型“Foundation”[重复]

Posted

技术标签:

【中文标题】UITableView 错误:使用未声明的类型“Foundation”[重复]【英文标题】:UITableView error: use of undeclared type 'Foundation' [duplicate] 【发布时间】:2018-09-23 22:08:06 【问题描述】:

我有一个 UITableView,我在其中从 API 获取图像 URL 并将其转换为 sn 图像。以下是代码:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let url = URL(string: imageURL)
    var image: UIImage?

    if let data = try? Data(contentsOf: url!)
        image = UIImage(data: data)! // Crashing here. it's nil
    

以下是错误描述。我不知道为什么会这样,也无法弄清楚。我已经调试过,我可以看到 url 存在并且它确实获取了图像 url。那么它为什么会崩溃呢?这是随机崩溃并且经常发生。我想我在更新到 Xcode 10 后开始看到这个错误。不确定这是否与 Xcode 有关或只是巧合,因为我在以前版本的 Xcode 中从未见过这个错误。

有什么帮助吗?

打印数据说明:

表达式产生错误:错误:/var/folders/57/03c16yxx1v5_bs9xtqxchnhm0000gn/T/expr22-7a390e..swift:1:65:错误:使用未声明的类型'Foundation' Swift._DebuggerSupport.stringForPrintObject(Swift.UnsafePointer(bitPattern: 0x124588550)!.pointee)

【问题讨论】:

暂时忽略 Foundation 错误,您的代码存在很多问题。 ! 的错误用法太多了(这是导致崩溃的原因)。您正在主队列上从 Internet 下载数据 - 这非常糟糕。永远不要使用Data(contentsOf:)。使用URLSession Tx 麦迪。没有意识到我做错了,崩溃很明显。我终于设法用 URLSession 弄明白了。 【参考方案1】:

主要问题是使用不应用于从 URL 获取图像的 Data(contentsOf:)。正确的方法是使用 URLSession。经过一番搜索,找到了一个适合我的解决方案https://***.com/a/44744511/6307359

【讨论】:

以上是关于UITableView 错误:使用未声明的类型“Foundation”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 未显示正确的行数

ViewController 中的 Swift 错误“使用未声明的类型”

使用未声明类型“NSXMLElement”错误

错误 C2027:使用未定义类型 - 如何声明类

NSFetchRequest as entityName 给出错误“使用未声明的类型”

Swift 3 核心数据“实体”错误:`使用未声明的类型`