About This eBook
ePUB is an open, industry-standard format for eBooks. However, support of ePUB and its many features varies across reading devices and applications. Use your device or app settings to customize the presentation to your liking. Settings that you can customize often include font, font size, single or double column, landscape or portrait mode, and figures that you can click or tap to enlarge. For additional information about the settings and features on your reading device or app, visit the device manufacturers Web site.
Many titles include programming code or configuration examples. To optimize the presentation of these elements, view the eBook in single-column, landscape mode and adjust the font size to the smallest setting. In addition to presenting code and configurations in the reflowable text format, we have included images of the code that mimic the presentation found in the print book; therefore, where the reflowable format may compromise the presentation of the code listing, you will see a Click here to view code image link. Click the link to view the print-fidelity code image. To return to the previous page viewed, click the Back button on your device or app.
Learning Swift Programming
Jacob Schatz
Upper Saddle River, NJ Boston Indianapolis San Francisco
New York Toronto Montreal London Munich Paris Madrid
Cape Town Sydney Tokyo Singapore Mexico City
Learning Swift Programming
Copyright 2015 by Pearson Education, Inc.
All rights reserved. No part of this book shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from the publisher. No patent liability is assumed with respect to the use of the information contained herein. Although every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions. Nor is any liability assumed for damages resulting from the use of the information contained herein.
ISBN-13: 978-0-13-395040-3
ISBN-10: 0-13-395040-9
Library of Congress Control Number: 2014956093
Printed in the United States of America
First Printing: December 2014
Acquisitions Editor
Mark Taber
Managing Editor
Sandra Schroeder
Project Editor
Mandie Frank
Copy Editor
Kitty Wilson
Indexer
Cheryl Lenser
Proofreader
Paula Lowell
Technical Editor
Mike Keen
Editorial Assistant
Vanessa Evans
Designer
Chuti Prasertsith
Compositor
Mary Sudul
Trademarks
All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized. The publisher cannot attest to the accuracy of this information. Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark.
Warning and Disclaimer
Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied. The information provided is on an as is basis. The author and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book.
Special Sales
For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales department at or (800) 382-3419.
For government sales inquiries, please contact .
For questions about sales outside the U.S., please contact .
For Tiffany and Noa
Contents at a Glance
Table of Contents
About the Author
Jacob Schatz is a senior software engineer with more than eight years of experience writing code for the masses. His popular Skip Wilson YouTube channel has helped thousands of people around the world learn programming languages like Swift and Python. Though lately he has been deep into Swift, he also writes volumes of code in JavaScript, Python, Objective-C, and other languages. Jacob is always selectively consuming the latest programming trends. He has a passion for making a difference and is constantly solving problems. Lately he has been deep into Swift; he also writes volumes of code in JavaScript, Python, Objective-C, and other languages. He is always learning additional languages and thoroughly enjoys making new things. He is, at heart, an educator, and enjoys teaching and finding new ways to explain advanced concepts.
Acknowledgments
I could not have written this book without the help of many people. Thank you to the following:
Logan Wright, who wrote tons of YouTube tutorials with me and helped me with this book.
Cody Romano, who graciously helped me write and proofread, and whose endless knowledge has helped me debug more than a few bugs.
Mike Keen, who tirelessly proofread chapters and tried all my examples to make sure they were legit. He also provided an endless source of inspiration.
Mom and Dad, who, even though they had no idea what they were reading, sat there and read this book thoroughly, providing sage advice.
My wife, who put up with me spending countless hours in front of my computer, and through the process of this book has become an advanced programmer.
We Want to Hear from You!
As the reader of this book, you are our most important critic and commentator. We value your opinion and want to know what were doing right, what we could do better, what areas youd like to see us publish in, and any other words of wisdom youre willing to pass our way.
We welcome your comments. You can email or write directly to let us know what you did or didnt like about this bookas well as what we can do to make our books better.
Please note that we cannot help you with technical problems related to the topic of this book, and that due to the high volume of mail we receive, we might not be able to reply to every message.
When you write, please be sure to include this books title and author, as well as your name and phone or email address.
Email:
Mail: Reader Feedback
Addison-Wesley Developers Library
800 East 96th Street
Indianapolis, IN 46240 USA
Reader Services
Visit our website and register this book at www.informit.com/register for convenient access to any updates, downloads, or errata that might be available for this book.
Introduction
Welcome to Learning Swift Programming. This book will launch you into the world of iOS programming using the exciting new Swift programming language. This book covers the Swift programming language from start to finish, in a quick but complete way.
This introduction covers:
Who should read this book