मैं एक साधारण उलटी गिनती टाइमर बनाने की कोशिश कर रहा हूं ताकि जब कोई खिलाड़ी मेरे खेल में प्रवेश करता है तो टाइमर 60 से 0 तक शुरू होता है। यह आसान लगता है लेकिन मैं इसे कैसे लिखता हूं इस पर उलझन में हूं।(NSTimer) एक टाइमर उलटी गिनती
-(int)countDownTimer:(NSTimer *)timer {
[NSTimer scheduledTimerWithTimeInterval:-1
invocation:NULL
repeats:YES];
reduceCountdown = -1;
int countdown = [[timer userInfo] reduceCountdown];
if (countdown <= 0) {
[timer invalidate];
}
return time;
}
खेल मैं आरंभ 60. पर पूर्णांक समय लेबल तो ViewController के भीतर निर्धारित की जा रही है के शुरू में:
अब तक मैं अपने GameController.m के भीतर एक विधि है कि इस तरह दिखता है बनाया है । लेकिन फिलहाल जब मैं कोड संकलित करता हूं तो यह लेबल 60 पर दिखाता है और बिल्कुल कमी नहीं करता है।
किसी भी मदद की सराहना की जाएगी - मैं उद्देश्य-सी के लिए नया हूं।
संपादित
कुछ सहायता अब मैं 2 अलग तरीकों में कोड अलग किया है से है। कोड अब इस तरह दिखता है:
-(void)countDown:(NSTimer *)timer {
if (--time == 0) {
[timer invalidate];
NSLog(@"It's working!!!");
}
}
-(void)countDownTimer:(NSTimer *)timer {
NSLog(@"Hello");
[NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(countDown:)
userInfo:nil
repeats:YES];
}
हालांकि, कोड अभी भी ठीक से नहीं चल रहा है और जब मैं अपने दृश्य नियंत्रक से विधि [खेल countDownTimer] कहते हैं यह कह टूटता: "गैर मान्यता प्राप्त चयनकर्ता उदाहरण के लिए भेजा" । क्या कोई यहां समझा सकता है कि क्या गलत है?
वह उस तरह से एक बार फिर से आग नहीं करेगा? मुझे लगता है कि यह '--remainingCounts == 0' होना चाहिए, नहीं? –
@ दाईज-दंजन आप सही हैं, यह या तो 'शेष राशि = 59' या' --remainingCounts' होना चाहिए। धन्यवाद! – dasblinkenlight
आपकी प्रतिक्रिया dasblinkenlight के लिए धन्यवाद। हालांकि, अभी भी इसे चलाने के लिए संघर्ष कर रहा है! फिलहाल मेरा चयनकर्ता गिनती विधि से संचार नहीं कर रहा है यानी जब मैं कोड संकलित करता हूं तो कुछ भी नहीं हो रहा है। क्या ऐसा हो सकता है क्योंकि टाइमर शुरू नहीं हुआ है या वे जुड़े नहीं हैं? –