Thursday 15 April 2010

ios - Literal syntax for Arrays in Obj-c -


इसे पढ़ते समय लेखक कहते हैं कि

  NSArray * array = @ [@ "one ", @"दो" ];   

यदि उपर्युक्त सरणी एक वैश्विक चर है, तो यह त्रुटियों को बाहर करता है। इसका कारण

इसका कारण यह है कि @ [] वाक्यविन्यास का शाब्दिक रूप से एक कॉल में NSArray विधि में अनुवाद किया जाता है। कंपाइलर उस समय के संकलन के दौरान उस विधि के परिणाम की गणना नहीं कर सकता है, इसलिए यह इस संदर्भ में एक कानूनी प्रारंभकर्ता नहीं है।

मेरा प्रश्न यह है कि विधि के भीतर एक ही घोषणा कैसे मान्य हो सकती है?

सरणी शाब्दिक वाक्यविन्यास निम्न में अनुवादित है:

  NSString * vals [2] = {@ "एक", @ "दो"}; [एनएसएआरआरएआरएरेविज़ ऑब्जेक्ट: वाल्स गणना: 2];   

ग्लोबल्स और स्टैटिक्स को केवल समय के स्थिर संकलन के साथ आरंभ किया जा सकता है उपरोक्त संकलन समय स्थिर नहीं है यह केवल रनटाइम पर मूल्यांकन किया जा सकता है।

एक नियमित चर को रनटाइम पर प्रारंभ किया जा सकता है ताकि मूल्य संकलन समय स्थिर होने की आवश्यकता न हो।

एक स्थिर या वैश्विक इसे क्लास के initialize पद्धति में प्रारंभ करने के लिए है:

  स्थिर NSArray * array = शून्य; + (शून्य) प्रारंभ करें {यदि (आत्म == [इस क्लास वर्ग]) {सरणी = @ [@ "एक", @ "दो", शून्य]; }}    

No comments:

Post a Comment