2013-10-26 19 views
5

मैं पदावनतपदावनत बदलने का प्रयास करने loadnibnamed: मालिक

[NSBundle loadNibNamed:@"Subscriptions" owner:self]; 
इस के साथ

को बदलने के लिए के बजाय (केवल एक चीज मुझे लगता है कि बराबर है पा सकते हैं)

[[NSBundle mainBundle] loadNibNamed:@"Subscriptions" owner:self topLevelObjects:nil]; 

कोशिश कर रहा हूँ, लेकिन संवाद पॉप अप होता है और खुले रहने के बजाए तुरंत गायब हो जाता है जैसे कि यह बहिष्कृत कॉल के साथ कर रहा था।

यह कोड इस तरह के एक दृश्य नियंत्रक के अंदर है।

- (id)init{ 
    self = [super init]; 
    if (self) { 
     //[NSBundle loadNibNamed:@"Subscriptions" owner:self]; 

     [[NSBundle mainBundle] loadNibNamed:@"Subscriptions" owner:self topLevelObjects:nil]; 
    } 
    return self; 

}

और मैं इस तरह AppDelegate से फोन कर रहा हूँ।

SubscriptionsViewController *subscriptionsViewController = [[SubscriptionsViewController alloc] init]; 
[subscriptionsViewController.window makeKeyAndOrderFront:self]; 

क्या मुझे कुछ याद आ रही है? यह मेरे लिए सीधे आगे लगता है।

+0

मैं भी एक ही समस्या हो रहा है, आप किसी भी समाधान – Retro

उत्तर

1

संवाद प्रकट हो रहा है और फिर गायब हो रहा है संभावित ऑब्जेक्ट संग्रह का संकेत है - संवाद के एक मजबूत संदर्भ के साथ इसे एकत्र और खो दिया जाएगा।

बहिष्कृत कॉल ने निब में शीर्ष-स्तरीय वस्तुओं के स्वामित्व को बनाए रखा, नया कॉल नहीं है।

इसलिए स्वामी के गुण जो शीर्ष-स्तर की वस्तुओं को संदर्भित करते हैं, मजबूत होना चाहिए, या आपको शीर्ष-स्तरीय ऑब्जेक्ट सरणी रखने की आवश्यकता है। यह पुरानी सिफारिश के विपरीत है जहां ऐसी संपत्ति कमजोर थी।

गुण जो निब में गैर-शीर्ष-स्तर वाली वस्तुओं को संदर्भित करते हैं, वे अभी भी कमजोर हो सकते हैं।

+0

मिला तो क्या समाधान हो सकता है, मेरे पास है आउटलेट मजबूत है, लेकिन इसके अभी भी – Retro

+0

@Retro छुपा - ऐसा लगता है कि आप एक अलग है समस्या, यदि आपके पास एक मजबूत संदर्भ है तो ऑब्जेक्ट एकत्र नहीं किया जाएगा। अपने प्रश्न पूछें, अपने कोड का विवरण दें, क्या गलत है और आपने क्या प्रयास किया है - तो कोई आपकी मदद कर सकता है। – CRD

1

जब loadNibNamed: owner: topLevelObjects: का उपयोग कर और हमेशा

की तरह एक त्रुटि मिली मैं सिर्फ एक समान समस्या थी

[__NSArrayM insertObject: atIndex:]: वस्तु नहीं के बराबर 'प्रकार NSException बीच में बंद करें() की न आया हुआ अपवाद के साथ समाप्त नहीं किया जा सकता

बुलाया

क्योंकि मेरे शीर्ष स्तर की वस्तुओं जहां शून्य है।

मुझे अंत में पता चला कि मैं जिस निब फ़ाइल को लोड कर रहा था उसका इंटरफेस बिल्डर संस्करण "एक्सकोड 4.6" पर सेट किया गया था। जब मैंने इसे 6.2 तक सेट किया, तो सब ठीक हो गया।

enter image description here

संबंधित मुद्दे