2015-11-26 29 views
17

Câu hỏinhập khẩu Swift vs Foundation nhập khẩu

sự khác biệt giữa import Swiftimport Foundation là gì?

Cho đến khi tôi đọc this comment bởi Martin R, tôi thậm chí không biết rằng có một import Swift.

Reading

tôi không thể tìm thấy tài liệu hướng dẫn và thực hiện một tìm kiếm Google đã không bật lên nhiều.

Những gì tôi cố gắng

Kiểm tra nó ra cho thấy import Swift không đưa ra bất cứ lỗi biên dịch, nhưng điều đó không thực sự trả lời câu hỏi của tôi.

Nếu tôi đoán, tôi sẽ nói rằng bạn nhập Swift cho các dự án Swift và bạn nhập Foundation cho các dự án Objective-C hoặc có thể cho các dự án Swift sử dụng các lớp Objective-C (như NSString).

Kiểm tra này trong sân chơi:

import Foundation 
import Swift 

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

Bình luận ra import Swift mang đến cho không có lỗi và strString loại. Tuy nhiên, nhận xét ra import Foundation cho lỗi "loại không khai báo" cho NSString.

Câu hỏi của tôi revisited

tôi sẽ có đủ hạnh phúc để bỏ Foundation và chỉ sử dụng Swift. Vì vậy, tôi có quyền chỉ cần nhập Swift tất cả các thời gian, trừ khi tôi đặc biệt cần phải sử dụng một trong các lớp Objective-C cũ?

+5

Chỉ cần sử dụng bất kỳ mã nào của bạn yêu cầu. Như Martin đã nói trong bình luận của anh ta rằng bạn đã liên kết, bạn có thể sử dụng lớp hẹp nhất có thể cho những gì bạn đang làm trong mã của bạn. Vì vậy, nếu 'import UIKit' nếu bạn đang sử dụng các lớp UIKit. Sử dụng 'Import Foundation' nếu sử dụng các lớp nền tảng nhưng không sử dụng UIKit. Sử dụng 'import Swift' Nếu bạn không cần bất kỳ lớp UIKit hoặc nền tảng nào. – Rob

+4

Tôi nghĩ rằng 'nhập Swift' luôn luôn ngầm ở đó, không cần phải gõ nó ra. – Kametrixom

Trả lời

17

Có, bạn sẽ chỉ cần import Foundation nếu bạn muốn truy cập NSObject hoặc một trong các lớp con của nó. Nền tảng là khuôn khổ mang lại thứ bậc lớp đó. Tuy nhiên, rất có khả năng trong một dự án bạn sẽ cần nhiều hơn chỉ là import Swift. Giống như Rob nhận xét, import UIKit cũng là một lựa chọn tốt đẹp.

Trong trường hợp bạn chưa đọc nó, Apple giải thích khung nền tảng here.