Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Learning Swift Second Edition - Second Edition

You're reading from  Learning Swift Second Edition - Second Edition

Product type Book
Published in Mar 2016
Publisher
ISBN-13 9781785887512
Pages 308 pages
Edition 2nd Edition
Languages
Author (1):
Andrew J Wagner Andrew J Wagner
Profile icon Andrew J Wagner

Table of Contents (19) Chapters

Learning Swift Second Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
1. Introducing Swift 2. Building Blocks – Variables, Collections, and Flow Control 3. One Piece at a Time – Types, Scopes, and Projects 4. To Be or Not To Be – Optionals 5. A Modern Paradigm – Closures and Functional Programming 6. Make Swift Work For You – Protocols and Generics 7. Everything Is Connected – Memory Management 8. Paths Less Traveled – Error Handling 9. Writing Code the Swift Way – Design Patterns and Techniques 10. Harnessing the Past – Understanding and Translating Objective-C 11. A Whole New World – Developing an App 12. What's Next? – Resources, Advice, and the Next Steps Index

Extensions


Up until this point, we had to define our entire custom type in a single file. However, it is sometimes useful to separate out part of our custom types into different files, or even just in the same file. To achieve this, Swift provides a feature called extensions. Extensions allow us to add additional functionality to existing types from anywhere.

This functionality is limited to additional functions and additional computed properties:

extension Building {
    var report: String {
        return "This building is \(self.squareFootage) sq ft"
    }

    func isLargerThanOtherBuilding(building: Building) -> Bool {
        return self.squareFootage > building.squareFootage
    }
}

Note that, to define an extension, we use the extension keyword, followed by the type that we would like to extend. Extensions can also be used on an existing class, struct, or enumeration, even those defined within Swift like String. Let's add an extension to String that allows us to repeat a string...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}