ios - Swift 2 - 定时 Action 间隔一秒?

标签 ios swift nstimer

我正在尝试像这样获得输出:

1
(然后延迟一秒)
你好
2
(然后延迟一秒)
你好
3
(然后延迟一秒)
你好

但我得到的是
1
2
3
(然后延迟一秒)
你好
你好
你好

这是我调用 NSTimer 的 for 循环

    var timer = NSTimer()

    for i in 1...3 {
        print("\(i)");
        timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(MainVPScreenViewController.printTest), userInfo: nil, repeats: false)
    }

这是选择器方法:

func printTest() {
    print("Hello")
}

预先感谢您提供的任何帮助

最佳答案

在没有 NSTimer 的情况下尝试这个解决方案:

var i = 1

func printHello() {

    print(i)

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
        print("Hello")
        i +=1
        if i <= 3 {
            printHello() 
        }
    }

}

override func viewDidLoad() {
    super.viewDidLoad()

    printHello()
}

关于ios - Swift 2 - 定时 Action 间隔一秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38086104/

相关文章:

xcode - 当 NSMenu 在 Swift 中打开时,NSTimer 不会触发

android - 如何将 AdMob 广告集成到适用于 Android 和 iOS 的 Cordova 项目中?

ios - Swift 添加对象数组作为 map 注释

arrays - 比较两个对象数组时出现难以理解的 Swift 编译器错误

ios - 尝试从 WebView 加载 YouTube 视频时出现约束警告

ios - 离开应用程序并返回 ios 时的计时器

objective-c - Apple CameraUI 代码的内存泄漏

ios - SwiftEventBus注销swift

ios - viewDidLoad 中的变量未填充自定义表格单元格

ios - 使计时器在 iOS 后台运行超过 3 分钟