2012-02-13 9 views
6

मैं निरंतर सी स्ट्रिंग से CFString बनाने के लिए CFSTR फ़ंक्शन का उपयोग कर रहा हूं और मैं अपने डेमॉन में अक्सर इस फ़ंक्शन को कॉल कर रहा हूं।CFSTR मेमोरी प्रबंधन

documentation से:

  1. मान CFSTR से लौटे द्वारा जारी नहीं कर रहे हैं CFString-वे जब तक कार्यक्रम समाप्त हो जाता है मान्य होने के लिए गारंटी हैं:
    एक CFSTR द्वारा दिए गए मान निम्नलिखित अर्थ विज्ञान है।
  2. आप को बनाए रख सकते हैं और एक संतुलित फैशन में CFSTR से लौटाए गए मान जारी कर सकते हैं, जैसे कोई अन्य CFString, लेकिन आपको ऐसा करने की आवश्यकता नहीं है।

क्या मुझे बनाए रखने और रिलीज़ का उपयोग करना चाहिए?

उत्तर

11

प्रलेखन राज्यों के रूप में, CFSTR() बनाए गए तार प्रोग्राम समाप्त होने तक वैध रहते हैं। आप उन्हें पूरे दिन जारी कर सकते हैं, लेकिन वास्तव में उन्हें हटाया नहीं जाएगा। इसी कारण से, स्पष्ट रूप से उन्हें बनाए रखने/रिलीज़ करने की कोई आवश्यकता नहीं है। यह उन्हें बनाए रखने/रिलीज़ करने के लिए मान्य है क्योंकि अन्यथा, आप उन्हें अन्य कोड के माध्यम से पास नहीं कर पाएंगे जो उन्हें बनाए रखता/रिलीज़ करता है (ढांचे के तरीके आदि)। उनका इलाज करें जैसे कि @"" का उपयोग करके बनाए गए एनएसएसटींग अक्षर, जो कहने के लिए, बनाए रखने के बाद उन्हें बनाए रखने या रिलीज़ करने की आवश्यकता नहीं है, लेकिन यदि आप कोई कोड लिख रहे हैं जो किसी भी CFString को ले सकता है, तो आपको सामान्य मेमोरी प्रबंधन नियमों का पालन करना होगा CFRetain() और CFRelease()

+0

मैं इसे अपने डेमॉन में उपयोग कर रहा हूं और इस फ़ंक्शन को बहुत बार कॉल कर रहा हूं तो क्या मुझे कुछ अन्य फ़ंक्शन का उपयोग करना चाहिए? –

+0

क्या आप प्रदर्शन, या स्मृति उपयोग, या के बारे में चिंतित हैं? वैसे भी, आपको समय-समय पर अनुकूलन नहीं करना चाहिए। यदि आप किसी प्रदर्शन या मेमोरी उपयोग की समस्या में भाग ले रहे हैं, तो उस समय कोड को प्रोफाइल करने और इसे सुधारने का तरीका पता लगाने का समय है। –

संबंधित मुद्दे