未解析的标识符范围
Posted
技术标签:
【中文标题】未解析的标识符范围【英文标题】:Unresolved Identifier Scope 【发布时间】:2017-01-02 22:53:54 【问题描述】:我是 Swift 3 的新手,我对以下代码有疑问:
func downloadData() ... downloads data about actors in JSON and initializes a Struct Actor
然后:
class MasterViewController: UITableViewController
var dataArray = [Actor]() //declare an empty array of type Actor
override func viewDidLoad()
super.viewDidLoad()
dataArray = downloadData() //to populate an empty array with data downloaded from web
print(dataArray)
当我尝试编译代码时,我收到错误未解析的标识符。我认为这是因为范围。谁能指出我正确的方向?谢谢!
【问题讨论】:
我们需要更多信息才能继续。什么标识符未解析?错误发生在哪里? 你在哪里定义downloadData()
?它返回什么?它是从 Web 下载数据时的异步函数吗?如果是,您需要回调或委托等。
为什么要新建一个数组,赋值给dataArray
,然后马上用downloadData()
的结果覆盖?
【参考方案1】:
您的函数/方法downloadData()
不返回任何内容。
【讨论】:
【参考方案2】:class MasterViewController: UITableViewController
var dataArray = [Actor]() //declare an empty array of type Actor
override func viewDidLoad()
super.viewDidLoad()
dataArray = downloadData() //to populate an empty array with data downloaded from web
print(dataArray)
func downloadData() -> [Actor]
return [Actor]()
只需实现 downloadData 方法。 编辑: 您可以使用 EVReflection 和 Alamofire(Pods) 下载 json 并创建 Actors 并填充数组。
【讨论】:
当我尝试填充一个空数组dataArray = downloadData()
时收到此错误:无法将 type() 的值分配给类型 [Actor]。
你确定你的代码中有“func downloadData() -> [Actor]”吗?以上是关于未解析的标识符范围的主要内容,如果未能解决你的问题,请参考以下文章
使用未解析的标识符“kCAFillModeForwards”
使用未解析的标识符 'json' (Swift 3) (Alamofire)
出现错误:使用未解析的标识符“LinkingObjects”