0Day Forums
import Swift vs import Foundation - Printable Version

+- 0Day Forums (https://0day.red)
+-- Forum: Coding (https://0day.red/Forum-Coding)
+--- Forum: Swift (https://0day.red/Forum-Swift)
+--- Thread: import Swift vs import Foundation (/Thread-import-Swift-vs-import-Foundation)



import Swift vs import Foundation - Mrboroughenglish2 - 07-18-2023

**Question**

What is the difference between `import Swift` and `import Foundation`?

Until I read [this comment][1] by [Martin R][2], I didn't even know that there was an `import Swift`.

**Reading**

I couldn't find the documentation and doing a Google search didn't turn up much.

**What I tried**

Testing it out shows that `import Swift` does not give any compile errors, but that doesn't really answer my question.

If I were to guess, I would say that you import Swift for Swift projects and that you import Foundation for Objective-C projects or maybe for Swift projects that use Objective-C classes (like `NSString`).

Testing this in the Playground:

import Foundation
import Swift

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

Commenting out `import Swift` gives no errors and `str` is of `String` type. However, commenting out `import Foundation` gives an "undeclared type" error for `NSString`.

**My question revisited**

I would be happy enough to abandon Foundation and just use Swift. So am I right to just import Swift all the time unless I specifically need to use one of the old Objective-C classes?


[1]:

[To see links please register here]

[2]:

[To see links please register here]




RE: import Swift vs import Foundation - montefid - 07-18-2023

*import Foundation* used for access NSObject or one of its sub class.NSObject means we can extend our class using *objective C* runtime features.But import UIKit or import swift, that is automatically generate while we create our xcode project


RE: import Swift vs import Foundation - unchoosable199237 - 07-18-2023

If you want to work with Strings, Dates, etc you need to import Foundation.

**The Foundation framework provides a base layer of functionality for apps and frameworks, including data storage and persistence, text processing, date and time calculations, sorting and filtering, and networking.**

If you want to work with UITableViewController, UIAlertController you need to import UIKit.

**If you import UIKit you do not need to import Foundation because it already imports it in the backstage.**

The Swift standard library defines a base layer of functionality for writing Swift programs, including:

Fundamental data types, Common data structures, Global functions such as print(_:separator:terminator:) and abs(_:), Protocols, such as Collection and Equatable... etc

**If you import Foundation, then no need to import Swift again as Foundation contains references to Swift Standard Library by default.**

**When you are writing something not for iOS Apps, like say a server programming based on Vapor , you may need to consider import Swift.**


Refer:-

[To see links please register here]


Pleases refer:-

[To see links please register here]




RE: import Swift vs import Foundation - hydroponics201 - 07-18-2023

Yes, you will only need `import Foundation` if you want to access NSObject or one of its subclasses. Foundation is the framework that brings in that class hierarchy. However, it's highly likely that in a project you'll need more than just `import Swift`. Like Rob commented, `import UIKit` is also a nice option.

In case you haven't read it already, Apple explains the Foundation framework [here][1].


[1]:

[To see links please register here]