2009-03-27 13 views
5

एक परीक्षण के रूप में, मैं कर रहा हूँ applicationDidFinishLaunching में पहली पंक्ति के रूप में निम्नलिखित: लाइन चलाताNSArray initWithObjects: लोड नहीं

NSArray *list=[[NSArray alloc] initWithObjects:@"Andy",@"Erik",@"Aaron",nil]; 

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

जब मैं निम्न पंक्ति में गिनती पर माउस, मैं देख रहा हूँ "varaible अनुकूलित Awa ... सारांश":

int count = [list count]; 
कोई सुझाव

क्यों सरणी भर नहीं है और क्यों गिनती वापस न जताए पूर्णांक?

उत्तर

6

क्या हो रहा है यह है कि आप 'गिनती' चर का उपयोग नहीं कर रहे हैं और संकलक इसे अनुकूलित कर रहा है।

1) रिलीज मोड के बजाय डीबग में चलने का प्रयास करें। डीबग मोड सामान को अनुकूलित नहीं करेगा, इसलिए आपको गिनती चर को डीबगर में माउस के साथ सही परिणाम देना चाहिए। आप एक्सकोड के ऊपरी बाईं ओर स्थित ड्रॉप डाउन बार पर क्लिक करके रिलीज से डीबग करने के लिए सक्रिय कॉन्फ़िगरेशन को बदल सकते हैं।

2) अपने कोड में 'गिनती' चर का उपयोग करें। ध्यान दें कि रिहाई में चीजें निर्माण से बाहर हो सकती हैं, अगर संकलक ऐसा करना चाहता है। उदाहरण के लिए यदि आपके पास कहीं भी आपकी गिनती प्रारंभिक कथन है, और आप अपने कोड में 'गिनती' का उपयोग करते हैं, तो 'गिनती' वास्तव में तब तक सेट नहीं हो सकती है जब 'गिनती' वास्तव में उपयोग की जाती है।

+0

धन्यवाद। विज्ञापन के लिए वितरण मोड में गलती से था। अजीब कैसे यह इस तरह चारों ओर कूदता है। – 4thSpace