2015-11-26 21 views
17

प्रश्नआयात बनाम आयात फाउंडेशन

import Swift और import Foundation बीच क्या अंतर है स्विफ्ट?

जब तक मैं this commentMartin R तक पढ़ता हूं, मुझे यह भी पता नहीं था कि import Swift था।

पढ़ना

मैं प्रलेखन नहीं पा सके और कर एक गूगल खोज में ज्यादा बारी नहीं था।

मैं क्या करने की कोशिश की

परीक्षण से पता चलता है कि यह बाहर है कि import Swift किसी भी त्रुटि संकलन नहीं देता है, लेकिन वास्तव में मेरे सवाल का जवाब नहीं है।

अगर मुझे लगता है कि, मैं कहूंगा कि आप स्विफ्ट परियोजनाओं के लिए स्विफ्ट आयात करते हैं और आप उद्देश्य-सी परियोजनाओं के लिए फाउंडेशन आयात करते हैं या शायद स्विफ्ट परियोजनाओं के लिए आयात करते हैं जो उद्देश्य-सी कक्षाओं (जैसे NSString) का उपयोग करते हैं।

खेल का मैदान में इस परीक्षण:

import Foundation 
import Swift 

var str = "Hello, playground" 
let str2: NSString = "hello" 
let str3: String = "hello" 

import Swift बाहर टिप्पणी करते हुए कोई त्रुटि देता है और strString प्रकार का है। हालांकि, import Foundation पर टिप्पणी करने से NSString के लिए "अविकसित प्रकार" त्रुटि मिलती है।

मेरा प्रश्न पर दोबारा गौर

मैं काफी खुश फाउंडेशन परित्याग करने के लिए हो सकता है और सिर्फ स्विफ्ट का उपयोग करें। तो क्या मुझे हर समय केवल स्विफ्ट आयात करने का अधिकार है जब तक कि मुझे विशेष रूप से पुराने उद्देश्य-सी कक्षाओं में से किसी एक का उपयोग करने की आवश्यकता न हो?

+5

बस अपने कोड की आवश्यकता के लिए उपयोग करें। मार्टिन की तरह उन्होंने अपनी टिप्पणी में कहा कि आप से जुड़े हुए हैं, आप अपने कोड में जो भी कर रहे हैं उसके लिए आप सबसे कम संभव वर्ग का उपयोग कर सकते हैं। तो यदि आप UIKit कक्षाओं का उपयोग कर रहे हैं तो 'UIKit आयात करें'। नींव वर्गों का उपयोग करते हुए 'आयात फाउंडेशन' का उपयोग करें, लेकिन UIKit नहीं। 'आयात स्विफ्ट' का प्रयोग करें यदि आपको किसी UIKit या नींव कक्षाओं की आवश्यकता नहीं है। – Rob

+4

मुझे लगता है कि 'आयात स्विफ्ट' हमेशा निहित है, इसे टाइप करने की कोई आवश्यकता नहीं है। – Kametrixom

उत्तर

17

हां, आपको केवल import Foundation की आवश्यकता होगी यदि आप NSObject या इसके उप-वर्गों तक पहुंच बनाना चाहते हैं। फाउंडेशन वह ढांचा है जो उस वर्ग पदानुक्रम में लाता है। हालांकि, यह अत्यधिक संभावना है कि एक परियोजना में आपको केवल import Swift से अधिक की आवश्यकता होगी। रोब की तरह टिप्पणी की, import UIKit भी एक अच्छा विकल्प है।

यदि आपने इसे पहले से नहीं पढ़ा है, तो ऐप्पल फाउंडेशन फ्रेमवर्क here बताता है।

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