Tôi muốn lên lịch một cuộc gọi chức năng trong tương lai. Tôi đang sử dụng Swift.Swift - scheduleTimerWithTimeInterval - NSInvocation
Tôi muốn gọi lại một phương pháp đó là tư nhân và trả về một Promise (từ PromiseKit)
Tất cả các ví dụ tôi đã nhìn thấy sử dụng
NSTimer.scheduledTimerWithTimeInterval(ti: NSTimeInterval, target: AnyObject, selector: Selector, userInfo: AnyObject?, repeats: Bool)
Fine. Tôi đã thử
NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "connect", userInfo: nil, repeats: false)
Điều đó không thành công với No method declared with Objective-C selector 'connect'
.
Objective-C đang làm gì ở đây ??
Dù sao, đề nghị tôi thêm @objc
trước phương thức connect
. Khỏe. Vâng, tôi có thể không phải vì vẻ Method cannot be marked @objc because its result type cannot be represented in Objective-C
Nếu tôi muốn sử dụng Mục tiêu-C tôi không được viết Swift ...
Có một scheduledTimerWithTimeInterval
đó là
NSTimer.scheduledTimerWithTimeInterval(ti: NSTimeInterval, invocation: NSInvocation, repeats: Bool)
Nhưng từ những gì tôi đã đọc NSInvocation
không phải là một điều Swift ...
Vì vậy, tôi đã kết thúc việc tạo ra một trình bao bọc mà không có gì khác hơn là gọi connect
và trả lại Void
rằng Mục tiêu C có thể understan d. Nó hoạt động nhưng nó cảm thấy rất ngu ngốc. Có cách nào tốt hơn Swift không?
Phần thưởng: tại sao javascript có thể làm điều đó đơn giản như setTimeout(this.connect, 1)
và Swift không có cách nào tôi có thể tìm thấy?
Tuyệt vời, cảm ơn! – Guig