Ben*_*iid 12 arguments nstimer ios swift
我有一个函数,包含TextView中的文本字符串.我希望随着时间的推移改变该文本的淡化.这不是我对如何褪色的实现,而是如何将两个参数(alpha值和应该褪色的字符范围)传递给NSTimer中的Selector.
我看过这个问题,但这并没有给我一个答案.
这就是我现在所拥有的:
func someFunc(){
var timer: NSTimer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("val:"), userInfo: 5, "someString", repeats: true)
}
func val(val1: Int, val2: String){
println("printing \(val1) and \(val2)")
}
Run Code Online (Sandbox Code Playgroud)
然而,它给我一个"额外参数'选择器'调用'错误.我需要能够传递两个参数,但我也无法正确传递一个参数; 从函数中删除val2并删除"someString",所以我只传递一个参数,导致函数在每个时间步打印"print 140611230609088"行.
Ras*_*had 30
使用您的对象创建一个数组并将其发送到userInfo.试试这个:
func someFunc(){
var arr = ["one", "two"]
var timer: NSTimer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("val:"), userInfo: arr, repeats: true)
}
func val(timer: NSTimer){
//You'll get an array in timer.userInfo
// arr = timer.userInfo.
// Now you'll get you data in each index of arr
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.. :)
首先,你有太多的论点.其次,func接收NSTimer,因此您必须使用AnyObject或NSTimer.
所以我的建议是使用字典或数组并将其作为userInfo参数传递,如下所示:
func someFunc(){
var timer: NSTimer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("val:"), userInfo: ["key1" : 1 , "key2" : "aString"], repeats: true)
}
func val(val : NSTimer?) {
println("printing \(val?.userInfo)")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13016 次 |
| 最近记录: |