2012-04-03 12 views
7

मैं http://gabriel.github.com/gh-unit/docs/appledoc_include/guide_testing.html से ट्यूटोरियल ट्यूटोरियल हूं। समस्या यह है कि मेरी परियोजना एआरसी और जीएचयूनीट का उपयोग नहीं करती है। मैंने पिछली त्रुटियों को प्रबंधित किया, लेकिन अब मुझे ब्रिज कास्ट करना चाहिए, जिसे मैंने कभी नहीं इस्तेमाल किया है, और मैं खो गया हूं।एआरसी, ब्रिज कास्ट और जीएचयूनीट

NSString *string1 = @"a string"; 
GHAssertNotNULL(string1, nil); //error here 

त्रुटि विवरण: ऑब्जेक्टिव-सी सूचक प्रकार 'NSString *' सी सूचक प्रकार के 'स्थिरांक शून्य *' की अंतर्निहित रूपांतरण एक पाट कलाकारों की आवश्यकता है।

किसी भी मदद का स्वागत करते हैं :)

उत्तर

11

चूंकि आप एनएसएसटींग की तुलना कर रहे हैं, तो आपको GHAssertNotNil चेक का उपयोग करना चाहिए। अधिक जानकारी के लिए NULL vs nil in Objective-C देखें।

तो अपने उदाहरण पढ़ना चाहिए:

NSString *string1 = @"a string"; 
GHAssertNotNil(string1, nil); 

मैं भी GHUnit उपयोग करते हुए मेरे एआरसी परियोजनाओं में देखा है कि GHUnit main.m फ़ाइल

-fno-objc-arc 

लिंकर ध्वज की जरूरत है जैसा कि पहले सुझाव दिया गया था ।

+0

अच्छी पकड़। वर्तमान दस्तावेज सिर्फ GHAssertNotNil के बजाय GHAssertNotNull का उपयोग करता है, जो एआरसी कोड के साथ समस्याएं पैदा करता है। –

1

आप चरण बिल्ड में जाकर अपनी परियोजना से संदर्भित (एआरसी) automatics से केवल GHUnit फ़ाइलें बाहर कर सकते हैं -> से फाइल पर संकलित सूत्रों का कहना है

और फिर डबल क्लिक करें GHUnit, एक बॉक्स दिखाई देगा, पेस्ट यह

-fno-objc-arc 

में निम्नलिखित यह संदर्भित automatics से GHUnit से फाइल को बाहर निकाल देगा (एआरसी)।

+1

एक अच्छा विचार है जब तक कि GHUnit एआरसी लागू नहीं करता है। हालांकि मैं अभी भी यह जानना चाहता हूं कि इन पुलों को कैसे करना है, अब तक यह जानकारी कुछ एआरसी-संदर्भों से प्राप्त करने की कोशिश कर रही है। – Vive