Tôi không có mã để lấy mẫu hoặc bất kỳ thứ gì, bởi vì tôi không biết làm thế nào để làm điều đó, nhưng ai đó có thể cho tôi biết làm thế nào để trì hoãn một chức năng nhanh chóng trong một khoảng thời gian nhất định?Chức năng trì hoãn trong swift
Trả lời
Bạn có thể sử dụng GCD (trong ví dụ với một sự chậm trễ 10 giây):
Swift 2:
let triggerTime = (Int64(NSEC_PER_SEC) * 10)
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, triggerTime), dispatch_get_main_queue(), {() -> Void in
self.functionToCall()
})
Swift 3:
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0, execute: {
self.functionToCall()
})
GHI CHÚ NHANH: Bạn phải tự gọi mình là 'functionToCall()' vì nó nằm trong phạm vi đóng. I E. self.functionToCall() –
cảm ơn @ B-Rad, tôi đã chỉnh sửa câu trả lời –
"GCD" là gì? –
NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(3), target: self, selector: "functionHere", userInfo: nil, repeats: false)
này sẽ gọi function functionHere() với độ trễ 3 giây
cách gửi đối số trong hàm chức năngHere()? – PAC
Swift 3 phiên bản này: Timer.scheduledTimer (timeInterval: TimeInterval (3), target: self, selector: "functionHere", userInfo: nil, repeats: false) –
Để thêm đối số vào chức năng trì hoãn.
Trước tiên hãy thiết lập từ điển, sau đó thêm từ khóa đó làm userInfo. Bỏ thông tin với bộ hẹn giờ làm đối số.
let arg : Int = 42
let infoDict : [String : AnyObject] = ["argumentInt", arg]
NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(3), target: self, selector: "functionHereWithArgument:", userInfo: infoDict, repeats: false)
Sau đó trong hàm gọi
func functionHereWithArgument (timer : NSTimer)
{
if let userInfo = timer.userInfo as? Dictionary<String, AnyObject>
{
let argumentInt : Int = (userInfo[argumentInt] as! Int)
}
}
Swift 3 Phiên bản dành cho một sự chậm trễ 10 giây
unowned let unownedSelf = self
let deadlineTime = DispatchTime.now() + .seconds(10)
DispatchQueue.main.asyncAfter(deadline: deadlineTime, execute: {
unownedSelf.functionToCall()
})
DispatchQueue.main.asyncAfter (hạn chót: .now () + 10, thực thi: {something()}) –
- 1. Cách tạo chức năng trì hoãn javascript
- 2. clojure chức năng trì hoãn thực hiện
- 3. Hành động trì hoãn trong Swift
- 4. CSS Animations trì hoãn khi chạy chức năng javascript
- 5. Các cuộc gọi chức năng bị trì hoãn
- 6. Tiềm năng trì hoãn UDP
- 7. Tại sao Underscore.js có chức năng trì hoãn?
- 8. Nhiều chức năng trì hoãn chuỗi sử dụng q trong AngularJS dừng trả về dữ liệu
- 9. Làm cách nào để trì hoãn cuộc gọi chức năng trong 5 giây?
- 10. Trì hoãn việc tải JavaScript
- 11. hoãn trong chức năng đã không làm việc trong Swift 2.0
- 12. WatchKit: setTitle trì hoãn?
- 13. Java Trì hoãn/Chờ
- 14. phong cách golang "trì hoãn" trong C++
- 15. Tôi có thể trì hoãn Chức năng chuột khi sử dụng Jquery .hover()?
- 16. Làm thế nào để trì hoãn lời hứa khi chức năng
- 17. tại sao việc định giờ không trì hoãn việc thực thi chức năng?
- 18. bị trì hoãn thêm lớp/xóa lớp chức năng không hoạt động
- 19. Cuộc gọi bị trì hoãn, với khả năng hủy?
- 20. Khả năng hiển thị trên iOS 8 bị trì hoãn?
- 21. trì hoãn cho lời hứa jquery
- 22. MPMoviePlayerController trì hoãn thường xuyên
- 23. Yêu cầu trì hoãn lậu
- 24. Trì hoãn tiêu đề SVG
- 25. Trì hoãn: Di chuột trong CSS3?
- 26. Android - nhấp chuột trì hoãn trong ListView
- 27. Mojolicious và trì hoãn WebSocket
- 28. Chính xác thì trì hoãn làm gì?
- 29. Trì hoãn khởi động trễ
- 30. Trì hoãn hoạt ảnh CSS3
Bạn nên bao gồm những thứ bạn đã thử/nhìn lên. Tôi biết ngôn ngữ là khá mới, nhưng nó phải có tài liệu ở đâu đó. – Carcigenicate
Không phải là nguồn hợp pháp nhất, nhưng hãy xem qua: http://www.reddit.com/r/swift/comments/28v5pv/wait_function/ – Carcigenicate
Chỉ một lời khuyên - có vô số ví dụ về cách thực hiện điều này trong Obj-C. Nếu bạn muốn trở thành một nhà phát triển iOS có thẩm quyền, bạn sẽ cần phải học Obj-C, hoặc ít nhất là cách dịch Obj-C sang Swift. – AdamPro13