स्विफ्ट 4.0 में, निजी अब विस्तार में पहुंच योग्य है लेकिन उसी फ़ाइल में है। यदि आप यह घोषणा/अन्य फ़ाइल में विस्तार निर्धारित करते हैं तो अपने निजी चर नहीं अपने विस्तार के लिए सुलभ **
फ़ाइल निजी
फ़ाइल-निजी उपयोग के लिए अपने स्वयं को परिभाषित स्रोत फ़ाइल के लिए एक इकाई के उपयोग को प्रतिबंधित किया जाएगा। कार्यक्षमता के विशिष्ट टुकड़े के कार्यान्वयन विवरण को छिपाने के लिए फ़ाइल-निजी पहुंच का उपयोग करें, जब उन विवरणों का उपयोग पूरी फ़ाइल में किया जाता है।
सिंटेक्स:fileprivate <var type> <variable name>
उदाहरण:fileprivate class SomeFilePrivateClass {}
निजी
निजी पहुँच संलग्नित घोषणा करने के लिए एक इकाई के उपयोग को प्रतिबंधित है, और है कि एक ही में हैं कि घोषणा के विस्तार के लिए फ़ाइल। कार्यक्षमता के विशिष्ट टुकड़े के कार्यान्वयन विवरण को छिपाने के लिए निजी पहुंच का उपयोग करें, जब उन विवरणों का उपयोग केवल एक ही घोषणा के भीतर किया जाता है।
सिंटेक्स:private <var type> <variable name>
उदाहरण:private class SomePrivateClass {}
यहाँ सब पहुंच स्तर के बारे में और अधिक विस्तार है:
फ़ाइल:: ViewController.swift Swift - Access Levels
इस छवियों को देखो
यहां एक्सटेंशन और व्यू कंट्रोलर दोनों समान हैं फ़ाइल, इसलिए निजी चर testPrivateAccessLevel
विस्तार में पहुँचा जा सकता है
फ़ाइल: TestFile.swift
यहाँ विस्तार और देखने नियंत्रक दोनों अलग अलग फ़ाइलों में हैं, इसलिए निजी चर testPrivateAccessLevel
विस्तार में सुलभ नहीं है।
यहाँ वर्ग ViewController2
ViewController
का एक उपवर्ग है और दोनों एक ही फाइल में हैं। यहां निजी चर testPrivateAccessLevel
सबक्लास में उपलब्ध नहीं है लेकिन उप-वर्ग में फ़ाइलप्रिवेट पहुंच योग्य है।
यदि आप स्वचालित रूप से स्विफ्ट 2 से 3 तक कोड परिवर्तित कर रहे हैं, तो एक्सकोड 'निजी' को 'fileprivate' में बदल देगा। हालांकि, अगर आपके पास हाथ से ऐसा करने की लक्जरी है, तो आप अक्सर 'निजी' को 'निजी' के रूप में छोड़ने से लाभ उठा सकते हैं ... यदि यह संकलित होता है, तो सब अच्छा है। –