没有成员“数据”错误消息(Swift、Xcode)
Posted
技术标签:
【中文标题】没有成员“数据”错误消息(Swift、Xcode)【英文标题】:No member 'data' error message (Swift, Xcode) 【发布时间】:2016-09-13 19:43:55 【问题描述】:我想将变量 CorrectAnswerTotal 和 QuestionsAskedTotal 传递到我的第二个视图控制器(分数视图控制器),但是我不断收到错误消息“类型 'ScoreViewController' 没有成员 '数据'”
谁能告诉我如何解决这个问题。
另一个问题是我无法在我的原始视图控制器中单独调用这些变量,因为将它们添加到结构中。我是编程初学者,有什么方法可以做到吗?
提前致谢。
struct CarryToNextViewController
var CorrectAnswerTotal = 0
var QuestionsAskedTotal = 0
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
let ViewController:ScoreViewController = segue.destinationViewController as! ScoreViewController
ScoreViewController.data = CarryToNextViewController(CorrectAnswerTotal: Int, QuestionsAskedTotal: Int)
编辑
即使将ScoreViewController
重命名为viewController
,我仍然会收到相同的错误消息。这是修改后的代码:
class viewController: UIViewController
@IBOutlet var QuestionLabel: UILabel!
@IBOutlet var Buttons: [UIButton]!
var Questions = [Question]()
var QuestionNumber = Int()
var AnswerNumber = Int()
struct CarryToNextViewController
var CorrectAnswerTotal = 0
var QuestionsAskedTotal = 0
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
let ViewController:ScoreViewController = segue.destinationViewController as! ScoreViewController
viewController.data = CarryToNextViewController(CorrectAnswerTotal: 0, QuestionsAskedTotal: 0)
【问题讨论】:
为了避免这些错误——你应该引用ViewController
而不是ScoreViewController
符合命名约定,变量名以小写字母开头,类名以大写字母开头。
您正在使用类类型而不是类型上的引用来分配值。试试 ViewController.data = CarryToNextViewController(CorrectAnswerTotal: 0, QuestionsAskedTotal: 0)
【参考方案1】:
ScoreViewController
是一个类,而不是一个变量。请改用ViewController.data = ...
,不过您应该将其重命名为viewController
以减少混淆。
(事实上,自始至终使用标准变量/类命名将使代码更易于分析。)
【讨论】:
感谢您的帮助,但是当我将ScoreViewController
更改为 viewController
时,我收到错误消息“使用未解析的标识符 'viewController'。
您是否重命名了 ViewController
并为其赋值?
我已经这样做了,但代码似乎仍然无法正常工作,我已经在我的问题中对其进行了编辑,因此希望能够清楚我哪里出错了。
@SausageMachine 他没有重命名类,他的第一个视图控制器被命名为viewController
你应该检查这个***.com/questions/28996730/…【参考方案2】:
您不能使用viewController.data
访问let ViewController:ScoreViewController
,因为它们具有不同的变量名称(第一个是大写第二个是小写)它们应该是相同的。
由于您的第一个视图控制器被称为viewController
,为了避免更多混乱,我建议您替换这两行:
let ViewController:ScoreViewController = segue.destinationViewController as! ScoreViewController
viewController.data = CarryToNextViewController(CorrectAnswerTotal: 0, QuestionsAskedTotal: 0)
与
let destViewController:ScoreViewController = segue.destinationViewController as! ScoreViewController
destViewController.data = CarryToNextViewController(CorrectAnswerTotal: 0, QuestionsAskedTotal: 0)
【讨论】:
以上是关于没有成员“数据”错误消息(Swift、Xcode)的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 8 / Swift 3 - 类型“CGColorRenderingIntent”没有成员“RenderingIntentDefault”
Audiokit 4.9.5 在 xcode 11.4 + swift 5.2 中崩溃,没有有用的错误消息
Xcode 8:类型“UserDefaults”没有成员“标准”
“FileManager”类型的值没有成员“urlsForDirectory”-AppDelegate Swift 3 错误