2011-08-04 13 views
6

का उपयोग करते समय पिछली संगतता को लागू करने का सबसे अच्छा तरीका क्या है, मैक ओएस एक्स 10.7 के लिए ऐप बनाने पर भी 10.6 के लिए संगत रहना?मैक ओएस एक्स ऐप पिछड़ा संगतता 10.6 और 10.7 एनएसपीओपीओवर

मेरे पास एक ऐसा एप्लिकेशन है जो क्लाइंट 10.7 और एनएसईएनयूयू का उपयोग करता है जब क्लाइंट 10.6 होता है। समस्या यह है कि, जब 10.6 मशीन पर ऐप शुरू होता है, तो ऐप "प्रतीक नहीं मिला" अपवाद के साथ दुर्घटनाग्रस्त हो जाता है, कहता है कि (प्रकार) "_ ओबीजेसी $ _NSPopover AppKit में नहीं मिला"। क्या मुझे नई सुविधाओं के लिए पूरे एप्लिकेशन में आईडी का उपयोग करना है?

उत्तर

2

आप कर सकते हैं समारोह NSClassFromString() यह एक कक्षा वस्तु लौटने के साथ उदाहरण के लिए उदाहरण बना करने के लिए उपयोग कर सकते हैं का उपयोग करके NSPopover के लिए वर्ग वस्तु मिल

id thePopover = [[NSClassFromString(@"NSPopover") alloc] init]; 

एक और संभावना दो अलग-अलग निब फ़ाइलें एक है 10.6 और 10.7 के लिए एक, निब को पूर्ण इंटरफ़ेस नहीं होना चाहिए, केवल उस भाग में जिसमें NSPopover है और फिर रन टाइम पर उचित निब फ़ाइल लोड करें।