首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Swift的ViewController类中创建子类的对象

无法在Swift的ViewController类中创建子类的对象
EN

Stack Overflow用户
提问于 2015-04-03 01:22:48
回答 1查看 334关注 0票数 0
  1. 我创建了一个名为“Treasure.swift”的快速类,并在同一个文件中创建了一个子类,如下所示: 导入基础类宝藏[让什么:字符串让纬度:双让经度:双init (什么:字符串,纬度:双,经度:双){ self.what =什么self.latitude =纬度self.longitude =经度}类HistoryTreasure: HistoryTreasure{ let年份: Int init(什么:字符串,年份: Int,纬度: Double,( self.year =super.init(什么:什么,纬度:经度:经度)}}
  2. 然后创建一个'ViewController.swift‘类并添加以下代码: 导入UIKit类ViewController: UIViewController { var宝藏:UIViewController= [] override (){ super.viewDidLoad() self.treasures = HistoryTreasure() }
  3. 问题是,我已经创建了一个ViewController类“宝藏”的属性,并将其声明为“宝藏”类型的数组。当我在上面的数组中插入像"self.treasures = [Treasure(what: "hi", longitude: -37, latitude: 78),]“这样的对象时,它运行得很好,但是当我尝试插入'HistoryTreasure‘类型的对象(’HistoryTreasure‘的子类)时,它会显示错误:”使用未解析的标识符'HistoryTreasure'“。
  4. 而且,这个'ViewController‘类无法独立识别’历史宝藏‘类,即无法导入它。请帮助我理解以上的观点。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-03 12:35:34

  1. 在@nhgrif的注释中,我在上面的代码中发现了bug。第一个问题是错误的,我创建了“宝藏”类的嵌套类“HistoryTreasure”。但我想做一个简单的子类(HistoryTreasure)的超类‘宝藏’。因此,我对我的代码做了如下修改(在'HistoryTreasure‘类开始之前关闭’宝藏‘类的大括号):类宝藏: NSObject {让什么:字符串让纬度:双让经度:双init (什么:字符串,纬度:双经度){ self.what =什么self.latitude =纬度self.longitude =经度}类HistoryTreasure: self.longitude: Int init(字符串:字符串,年份: Int,经度:双){ self.year =年份super.init(什么:什么,纬度:纬度:经度:经度)}}
  2. 现在,我的代码运行得非常好,能够在HistoryTreasure类中的“宝藏”类型数组中生成和插入“ViewController”子类的对象。

self.treasures = [HistoryTreasure(what: "hi", year: 1992, latitude: -37, longitude: 420)]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29424963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档