Im создание простого приложения для ввода текста с таймером. Таймер должен быть в виде индикатора выполнения, который уменьшается каждую секунду.Непризнанный селектор, например, ошибка Swift
Чтобы реализовать индикатор прогресса, я намеревался установить прогресс на 0,1 меньше текущего хода каждые 1 секунду. Но есть ошибка «Непризнанный селектор, например», когда я устанавливаю прогресс. Есть ли другой способ обойти.
import Foundation
import UIKit
class TestView: UIViewController, UITextInputTraits {
@IBOutlet weak var TestLabel: UILabel!
@IBOutlet weak var TypingField: UITextField!
@IBOutlet weak var progressView: UIProgressView!
var time : Float = 0.0
var timer: NSTimer!
var test = 0;
var progress : Float = 1
var myMutableString = NSMutableAttributedString()
var testStringArray = ["abode" , "tutorial" , "completed",
"war", "method", "continue",
"machine", "texting" , "iterate"]
var idx = 0;
var setProg : Float = 1
func textFieldDidChange(textField: UITextField) {
let s = TypingField.text!
if(s.characters.last == " "){
let word = s.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
if(!word.isEmpty){
print(testStringArray[idx])
if(word == testStringArray[idx]){
idx++;
TypingField.text = "";
TestLabel.text = testStringArray[idx];
}else{
TypingField.text = "";
}
}
}
}
func setProgress() {
setProg -= 0.1
progressView.progress = setProg <-- cannot decrement progress bar
}
override func viewDidLoad() {
super.viewDidLoad()
TypingField.autocorrectionType = .No
TypingField.autocapitalizationType = .None
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector:Selector("setProgress"), userInfo: nil, repeats: true)
TestLabel.text = testStringArray[idx];
TypingField.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Хорошая вероятность, что эта строка вызывает проблему ... 'timer = NSTimer.scheduledTimerWithTimeInterval (1, target: self, selector: Selector (" setProgress "), userInfo: nil, repeatts : true) 'try change to' timer = NSTimer.scheduledTimerWithTimeInterval (1, target: self, selector: "setProgress", userInfo: nil, repeatts: true) ' – MikeG
Дайте мне знать, если это не сработает, и я буду смотреть больше близко – MikeG
I second @MikeG: http://stackoverflow.com/questions/24007650/selector-in-swift?rq=1 –