NEW: Master Swift design patterns with my latest book! >>

What’s the difference between a class and a struct?

Written by Paul Hudson    @twostraws

Classes and structures (structs) are so similar in Swift that it's easy to get them confused at first, but actually there are some important underlying differences:

  • A struct cannot inherit from another kind of struct, whereas classes can build on other classes.
  • You can change the type of an object at runtime using typecasting. Structs cannot have inheritance, so have only one type.
  • If you point two variables at the same struct, they have their own independent copy of the data. With objects, they both point at the same variable.

That last point is particularly important: with a struct you know your data is fixed in place, like an integer or other value. This means if you pass your struct into a function, you know it's not going to get modified.

Available from iOS 7.0

Did this solution work for you? Please pass it on!

Other people are reading…

About the Swift Knowledge Base

This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.

Go from iOS to macOS the easy way!

If you like Hacking with Swift, you'll love Hacking with macOS – learn to build macOS apps today, using 18 real-world projects!

Click here to visit the Hacking with Swift store >>