كيفية استخدام Timer (NSTimer) في Swift: إنشاء التايمر وإيقافه وتكراره
مرحبًا! لقد بدأت للتو في تعلم Swift وأحاول تنفيذ تايمر بسيط للعد التنازلي في تطبيقي. أحتاج إلى تحديث القيمة على الشاشة كل ثانية، وأن يتوقف التايمر بعد 10 ثوانٍ.
لقد وجدت كلاس Timer في الوثائق، لكنني واجهت مشاكل. إليك ما أحاول فعله:
```swift
var seconds = 10
func startTimer() {
Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true)
}
@objc func updateTimer() {
seconds -= 1
print(seconds)
if seconds == 0 {
// كيف أوقف التايمر؟
}
}
```
التايمر يبدأ ويعد الثواني، لكنني لا أفهم:
1. كيف أوقف التايمر بشكل صحيح عندما تصبح `seconds` تساوي 0؟
2. لماذا يعطي Xcode أحيانًا تحذيرًا حول دورة مرجعية قوية (strong reference cycle)؟
3. كيف أصنع تايمر يعمل مرة واحدة فقط (بدون تكرار)؟
4. هل هناك طريقة لاستخدام التايمر بدون selector، مثلًا مع