I need to be able to record reaction time, from when the screen loads or the question label refreshes until the user taps a number button. I'm not finding documentation from Apple on this to be very helpful. NSDate
is not accurate enough, I need to measure to milliseconds at least. mach_absolute_time
seems to be favored by game designers because it is internally consistent, but it won't work for this application because I need to compare data across devices, and mach_absolute_time
is CPU dependent time. This Apple Dev Q&A suggests using NanosecondsToAbsolute
and DurationToAbsolute
but it's in obj-c and I can't find a swift equivalent documentation.
Is there a swift version of NanosecondsToAbsolute
and DurationToAbsolute
that I'm just not finding? Some other way to do this consistently?
Here's the code I'm trying to add the times to:
class EmotionQuestionsViewController: UIViewController{
override func viewDidLoad() {
super.viewDidLoad()
//mark "startTime" when view loads
}
@IBOutlet var questionLabel: UILabel!
var timeResultsStack = [String]()
var questionsStack = ["HAPPY", "ANXIOUS"]
var questionResultsStack = [String]()
var questionStackArrayIndex = 1
@IBAction func RecordValueFromNumericalScaleOneToSeven(sender: UIButton) {
//mark durration time as currentTime - startTime, append to timeResultsStack
let value = sender.currentTitle!
questionResultsStack.append(value)
if questionResultsStack.count < questionsStack.count{
self.questionLabel.text = "how (questionsStack[questionStackArrayIndex]) are you right now?"
//mark startTime when label is changed
self.questionStackArrayIndex++
}
else{
self.performSegueWithIdentifier("showResults", sender: nil)
}
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…