कोड की यह पंक्ति दुर्घटनाग्रस्त हो जाती है। कैसे जांचें कि टैबर आइटम शून्य नहीं है तो बैज सेट कर रहा है?

[self.tabController.tabBar.items objectAtIndex:0].badgeValue = [NSString stringWithFormat:@"%i", num];

*** न आया हुआ अपवाद 'NSInvalidArgumentException' के कारण ऐप को समाप्त करना, कारण: '- [_CTNativeGlyphStorage tabBar]: अपरिचित चयनकर्ता उदाहरण 0x15029cfd0 पर भेजा गया'

मैंने इसे कोड की इस पंक्ति से चेक किया, लेकिन इससे समस्या हल नहीं हुई।

if (self.tabController.tabBar.items != nil)   { }
0
Fattaneh Talebi 29 अक्टूबर 2018, 08:06

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप टैब नियंत्रक को प्रस्तुत करने या पूरी तरह से शुरू करने से पहले बैज मान सेट कर रहे हैं, तो अभी तक इंडेक्स 0 पर कुछ भी नहीं होगा। स्मृति उपयोग उद्देश्यों के लिए, प्रस्तुति के लिए समय आने तक टैब नियंत्रक को सब कुछ शुरू करने की आवश्यकता नहीं है। आप UITabBarItem के प्रत्येक इंस्टेंस का संदर्भ रख सकते हैं और उन पर बैज मान सेट कर सकते हैं। या आपको तब तक इंतजार करना होगा जब तक viewDidAppear को कॉल नहीं किया जाता है, यह सुनिश्चित करना कि सभी UITabBarItems पूरी तरह से तत्काल हो जाएं ...

मैं आपके शेष कोड को देखे बिना यहां कुछ और नहीं मान सकता।

1
pnizzle 30 अक्टूबर 2018, 03:17