10

क्या डिफ़ॉल्ट रूप से NSFileManager का उदाहरण प्राप्त करना ठीक है और मुख्य कतार के बाहर इसका उपयोग करना ठीक है?क्या NSFileManager थ्रेड सुरक्षित है?

इस कोड को ठीक है?

dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 

dispatch_async(q, ^{ 

    NSFileManager *fm = [NSFileManager defaultManager]; 

}); 

उत्तर

23

NSFileManager Class Reference से:

साझा NSFileManager वस्तु के तरीकों से अधिक थ्रेड सुरक्षित रूप से कहा जा सकता है। हालांकि, अगर आप एक प्रतिनिधि का उपयोग सूचनाएं चाल की स्थिति के बारे,, संचालन प्राप्त कॉपी निकाल सकते हैं और लिंक करने के लिए, आप फ़ाइल प्रबंधक वस्तु का एक अनूठा उदाहरण बनाना चाहिए, उस वस्तु के लिए अपने किसी प्रकार, और कहा कि फ़ाइल का उपयोग अपने परिचालन शुरू करने के लिए प्रबंधक ।

7

documentation से:

साझा NSFileManager वस्तु के तरीकों से अधिक थ्रेड सुरक्षित रूप से कहा जा सकता है। हालांकि, यदि आप स्थानांतरित करने की प्रतिलिपि, कॉपी, निकालें और लिंक ऑपरेशन की स्थिति के बारे में अधिसूचनाएं प्राप्त करने के लिए प्रतिनिधि का उपयोग करते हैं, तो आपको फ़ाइल प्रबंधक ऑब्जेक्ट का एक अनन्य उदाहरण बनाना चाहिए, उस प्रतिनिधि को अपना प्रतिनिधि असाइन करना चाहिए, और उस फ़ाइल प्रबंधक को आरंभ करने के लिए उपयोग करना चाहिए आपके ऑपरेशन

5
NSFileManager documentation से

सीधे:

थ्रेडिंग विचार

साझा NSFileManager वस्तु के तरीकों से अधिक थ्रेड सुरक्षित रूप से कहा जा सकता है। हालांकि, अगर आप एक प्रतिनिधि का उपयोग लिंक संचालन चाल की स्थिति के बारे में सूचनाएं, कॉपी, निकालें, और प्राप्त करने के लिए, आप का एक अनूठा उदाहरण फ़ाइल प्रबंधक वस्तु, बनाने के उस वस्तु के लिए अपने किसी प्रकार, और का उपयोग करना चाहिए कि अपने ऑपरेशन शुरू करने के लिए फ़ाइल प्रबंधक।

+1

lol, कम से कम 2 मिनट, तीन लगभग बिल्कुल एक ही जवाब के भीतर – Martin

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