无法调用非函数类型“URL”的值

Posted

技术标签:

【中文标题】无法调用非函数类型“URL”的值【英文标题】:Cannot call value of non-function type 'URL' 【发布时间】:2021-03-30 00:48:05 【问题描述】:

我正在关注 Angela 的完整 ios 应用程序开发训练营,我正在上课 353。我的问题是如何解决错误“无法调用非函数类型'URL'的值”。 到目前为止,我的代码只有三行

import Cocoa
import CreateML

let data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/Users/user/Documents/CurrentProjects/Work/Mini/Twittermenti-iOS13-master/twitter-sanders-apple3.csv"))

当我使用 Xcode 11.3.1 时,讲师在 Xcode 10 Beta 上没有遇到问题,但我在遵循完全相同的代码时遇到了问题。 谁知道怎么解决?

【问题讨论】:

您是否有自己创建的任何变量或类/结构命名的 URL?如果将 URL 替换为 Foundation.URL 会发生什么? @JoakimDanielson 我没有自己创建的任何名为 URL 的变量或类/结构,当我添加 Foundation 时收到错误消息“模块 'Foundation' 没有名为 ''"我什至不知道是什么意思 @JoakimDanielson 基于 MLDataTable 的使用,OP 使用的是 MacOS,因此 import Cocoa 而不是 Foundation 是正确的。 @KirilS。当然你可以只导入 macOS 的 Foundation,我一直都在这样做 @Impostor_Syndrom_Incarnated 你能否包含更多与错误相关的代码,比如周围的代码行? 【参考方案1】:

你很可能在某个地方定义了这样的变量:

因此,您将使用本地变量覆盖 URL 类(您尝试创建的实例)。

将你的局部变量改成小写(无论如何这是 Swift 标准),它会起作用:

import Cocoa
import CreateML

var url: URL

let data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/Users/user/Documents/CurrentProjects/Work/Mini/Twittermenti-iOS13-master/twitter-sanders-apple3.csv"))

【讨论】:

以上是关于无法调用非函数类型“URL”的值的主要内容,如果未能解决你的问题,请参考以下文章

无法调用非函数类型 HTTPURLResponse 的值?

错误:无法调用非函数类型的值

无法调用非函数类型“HTTPURLResponse?”的值

Swift 3 错误“无法调用非函数类型 'UITableView!' 的值” [关闭]

快速轮函数。无法调用非函数类型“Int”的值

Alamofire:无法调用非函数类型“NSHTTPURLResponse”的值?