class vs struct
-
Upload
daniel-carlos-souza-carvalho -
Category
Software
-
view
159 -
download
0
Transcript of class vs struct
Daniel Carlos
🔸 Cascavel - Ceará
🔸 Sistemas e MÃdias Digitais - UFC
🔸 3+ years - Mobile Development
🔸 iOS Developer - HE:labs
Immutability
class User { var name: String init(name:String) {self.name = name} }
class version
let user = User(name: "Daniel Carlos")
user.name = "Carlos Daniel"
Immutability
class User { let name: String init(name:String) {self.name = name} }
class version
class MutableUser { var name: String init(name:String) {self.name = name} }
Immutability
struct User { var name: String }
struct version
let user = User(name: "Daniel Carlos")
user.name = "Carlos Daniel"
Member Initializer
struct User { var username: String var password: String }
User(username: "Joao", password: "Backwards321")
Pass by referenceside effect
ActorsVC
numberOfRows
ActorsVC
cellForIndexPathMovieVC
actors.remove(0)
Beyond model layer
class FavoriteVC: UIViewController { var favoriteMovies = [String]() var favoriteActor: String! }
Beyond model layer
struct FavoriteModel { var favoriteActor: String var favoriteMovies: String }
class FavoriteVC: UIViewController { var model: FavoriteModel! }
class
🔶 Inheritance
🔶 Behavior
🔶 Register itself as delegate
🔶 To model real-world objects
Conclusion
🔶 It’s not just changing form ‘class’ to ‘struct’
🔶 Let’s try to use struct beyond model
🔶 Swift is evolving. We should too!
References
🔶 Protocol and Value Oriented Programming in UIKit Apps https://developer.apple.com/videos/play/wwdc2016/419/
🔶 A Warm Welcome to Structs and Value Types https://www.objc.io/issues/16-swift/swift-classes-vs-structs/