एनएसएसटींग विधि initWithFormat: तर्क: एक तर्क के रूप में एक va_list लेता है। जब इसका उपयोग किया जाएगा (या यहां तक कि इसका उपयोग कैसे किया जाए) मैं समझ नहीं सकता। ऐप्पल इस तरह की एक विधि क्यों जोड़ता है जब नियमित initWithFormat: अधिक उपयोगकर्ता के अनुकूल है?initWithFormat कब होगा: तर्क: उपयोग किया जाना चाहिए?
उत्तर
आप -initWithFormat:
के प्रारूप तर्कों की एक गतिशील सूची पारित नहीं कर सकते हैं। उदाहरण के लिए, यदि आप -stringByAppendingFormat:
को -initWithFormat:arguments:
के बिना स्वयं लागू करना चाहते हैं, तो आपके पास इसका काम होगा। va_list
संस्करण के साथ, आप इसे कर सकते हैं:
- (NSString *)stringByAppendingFormat:(NSString *)format, ... {
va_list args;
va_start(args, format);
NSString * result = [self stringByAppendingString:[NSString stringWithFormat:format arguments:args]];
va_end(args);
return result;
}
मैं इस पर और देखे बिना कहूँगा कि एप्पल लघु संस्करण अर्थ NSString initWithFormat:arguements:
के शीर्ष पर एक उपयोगिता पद्धति के रूप में NSString initWithFormat:
प्रदान बस अब एक फोन कर समाप्त होता है।
वहाँ भी है [एनएसएसटींग स्ट्रिंगविथफॉर्मैट:] जो एक ऑटोरेलेज्ड एनएसएसटींग वापस कर सकता है, अगर आपको लंबे समय तक स्ट्रिंग की आवश्यकता नहीं है तो आपको alloc
कॉल बचाएं।
यह उपयोगी है जब आपका स्वयं का फ़ंक्शन या विधि विविध तर्कों का उपयोग करता है, क्योंकि उस स्थिति में वेनिला initWithFormat:
विधि का उपयोग करना असंभव है।
उदाहरण के लिए निम्नलिखित (बेकार) उदाहरण के स्निपेट:
void log(NSString* format, ...)
{
va_list arguments;
va_start(arguments, format);
// impossible:
// NSString* formattedString = [[NSString alloc] initWithFormat: ???];
// possible
va_list argsCopy;
va_copy(argsCopy, arguments);
NSString* formattedString = [[NSString alloc] initWithFormat:format arguments:argsCopy];
// do something cool with your string
NSLog(@"%@", formattedString);
va_end(argsCopy);
va_end(arguments);
}
- 1. std :: nothrow कब उपयोग किया जाना चाहिए?
- 2. Flask.g का उपयोग कब किया जाना चाहिए?
- 3. कब जोर देना चाहिए() का उपयोग किया जाना चाहिए?
- 4. ईन्नोएम को कब आवंटित किया जाना चाहिए?
- 5. तर्क अपवाद यूनिट परीक्षण किया जाना चाहिए?
- 6. सत्यापन तर्क कहां लागू किया जाना चाहिए?
- 7. कब [असेंबली: InternalsVisibleTo()] का उपयोग किया जाना चाहिए?
- 8. सुरक्षा एनोटेशन 'denyAll' कब उपयोग किया जाना चाहिए?
- 9. किसी वेब सेवा का उपयोग कब नहीं किया जाना चाहिए?
- 10. रणनीति पैटर्न का उपयोग कब और क्यों किया जाना चाहिए?
- 11. किसी स्मृतिदृश्य का उपयोग कब किया जाना चाहिए?
- 12. सी # में अस्थिर कीवर्ड का उपयोग कब किया जाना चाहिए?
- 13. Win32 InterlockedExchange फ़ंक्शन का उपयोग कब किया जाना चाहिए?
- 14. आईफोन: नेटवर्क गतिविधि सूचक का उपयोग कब किया जाना चाहिए
- 15. डेटाबेस समानार्थी शब्द का उपयोग कब किया जाना चाहिए?
- 16. <%# ... %> और <%= ... %> कब उपयोग किया जाना चाहिए?
- 17. कब, कहां और कैसे कतारों का उपयोग किया जाना चाहिए?
- 18. कमजोर संदर्भों का उपयोग कब किया जाना चाहिए?
- 19. ईएफ 4 में पीओसीओ का इस्तेमाल कब किया जाना चाहिए?
- 20. पूर्णांक को स्पष्ट रूप से कब निर्दिष्ट किया जाना चाहिए?
- 21. क्या DoWork() के "कनेक्शन" तर्क को बंद किया जाना चाहिए?
- 22. डेटाबेस इंडेक्स को पुनर्निर्मित कब किया जाना चाहिए?
- 23. कॉपी-लोकल को कब सही किया जाना चाहिए और यह कब नहीं होना चाहिए?
- 24. स्ट्रेस का उपयोग कैसे किया जाना चाहिए?
- 25. RedirectToRoute का उपयोग कैसे किया जाना चाहिए?
- 26. scala.util.parsing.ast.Binders का उपयोग कैसे किया जाना चाहिए?
- 27. सी #: ToString() कैसे लागू किया जाना चाहिए?
- 28. डेटा कब/डेटा में जाना चाहिए, और इसे/inst/extdata में कब जाना चाहिए?
- 29. कथन का उपयोग करते समय उपयोग किया जाना चाहिए?
- 30. EntityManagerFactory उदाहरण कब बनाया/खोला जाना चाहिए?
ग्रेट उत्तर, धन्यवाद। – calvinlough