Skip to content

Instantly share code, notes, and snippets.

@chungbkhn
Last active November 24, 2018 08:06
Show Gist options
  • Save chungbkhn/3ef6237de3337f8bd8ff012a8b5190c9 to your computer and use it in GitHub Desktop.
Save chungbkhn/3ef6237de3337f8bd8ff012a8b5190c9 to your computer and use it in GitHub Desktop.
Namespace in Swift
import UIKit
// Module "Model"
enum Model {}
// Static variable in namespace "Model"
extension Model {
static let defaultName = "anyone"
static let defaultPassword = "Awesome"
static let defaultLevel: Account.Level = .basic
}
// Struct in namespace "Model"
extension Model {
struct Account {
let username: String
let password: String
let level: Level
}
}
// Namespace "Model" have sub-namespace "Account"
extension Model.Account {
enum Level {
case basic
case medium
case premium
}
struct Identity {
let cardNumber: String
}
}
// Module "API"
enum API {}
extension API {
enum Account {
static func getFromServer() -> Model.Account {
// Do something here
return Model.Account(username: Model.defaultName,
password: Model.defaultPassword,
level: Model.defaultLevel)
}
}
}
// How to use
struct DoSomething {
var account: Model.Account = API.Account.getFromServer()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment