ViewController.Type 没有名为的成员
Posted
技术标签:
【中文标题】ViewController.Type 没有名为的成员【英文标题】:ViewController.Type does not have a member named 【发布时间】:2014-11-09 09:33:27 【问题描述】:只是一个简单的任务,但我遇到了麻烦。尝试另辟蹊径,但失败了。
如何使用先前声明的变量来初始化 NSTimer? var 和 let 都没有帮助。
【问题讨论】:
How to initialize properties that depend on each other的可能重复 【参考方案1】:试试:
var interval:NSTimeInterval = 1.0
var timer = NSTimer.scheduledTimerWithTimeInterval(interval, target: self, selector: "timerRedraw:", userInfo: nil, repeats: true)
专业提示,希望得到赞赏的仅供参考:Swift 函数也应该以小写字母开头(即“timerRedraw
”)。
【讨论】:
不幸的是,它没有帮助。出现同样的问题:interval not found 是的,我忘了注意您需要将两个变量放入“viewDidLoad
”方法中。这正是另一个正确回答的人所说的。为此,我给了他 +1。【参考方案2】:
属性的初始值(在您的情况下:timer
)不能依赖于类的另一个属性(在您的情况下:interval
)。
因此,您必须将分配 timer = NSTimer(interval, ...)
移动到
类,例如进入viewDidLoad
。因此,timer
必须定义为
可选或隐式展开可选。
还要注意Selector(...)
将文字 string 作为参数,而不是方法本身。
所以这应该有效:
class ViewController: UIViewController
var interval : NSTimeInterval = 1.0
var timer : NSTimer!
func timerRedraw()
override func viewDidLoad()
super.viewDidLoad()
timer = NSTimer(timeInterval: interval, target: self, selector: Selector("timerRedraw"), userInfo: nil, repeats: true)
// ...
// Other methods ...
【讨论】:
以上是关于ViewController.Type 没有名为的成员的主要内容,如果未能解决你的问题,请参考以下文章
无法将“ViewController.Type”类型的值转换为预期的参数类型“UIViewController”
无法将“ViewController.Type”类型的值转换为预期的参数类型“UIViewController”
无法将'ViewController.Type'类型的值转换为预期的参数类型'UIViewController'