售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Learning Swift
Table of Contents
Learning Swift
Credits
About the Author
About the Reviewer
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Introducing Swift
Defining our goals for this book
Setting up the development environment
Running our first Swift code
Understanding playgrounds
Learning with this book
Summary
2. Building Blocks – Variables, Collections, and Flow Control
Core Swift types
Constants and variables
Containers
Tuples
Arrays
Dictionaries
Swift's type system
Printing on the console
Control flow
Conditionals
Switches
Loops
Functions
Basic functions
Parameterized functions
Functions that return values
Functions with default arguments
Bringing it all together
Summary
3. One Piece at a Time – Types, Scopes, and Projects
Structs
Types versus instances
Properties
Member and static methods
Computed properties
Reacting to property changes
Subscripts
Custom initialization
Classes
Inheriting from another class
Initialization
Overriding initializers
Required initializers
Designated and convenience initializers
Overriding methods and computed properties
Methods
Computed properties
Casting
Upcasting
Downcasting
Enumerations
Basic declaration
Testing enumeration values
Raw values
Associated values
Methods and properties
Projects
Setting up a command-line Xcode project
Creating and using an external file
Interfacing with code from other files
File organization and navigation
Extensions
Scope
How is scope defined
Nested types
Access control
Summary
4. To Be or Not to Be – Optionals
Introducing optionals
Unwrapping an optional
Optional binding
Forced unwrapping
Nil coalescing
Optional chaining
Implicitly unwrapped optionals
Debugging optionals
The underlying implementation
Summary
5. A Modern Paradigm – Closures and Functional Programming
Functional programming philosophy
State and side effects
Declarative versus imperative code
Closures
Closures as variables
Closures as parameters
Syntactic sugar
Building blocks of functional programming in Swift
The filter function
The reduce function
The map function
The sorted function
How these affect the state and nature of code
Lazy evaluation
Curried functions
Summary
6. Make Swift Work for You – Protocols and Generics
Protocols
Defining a protocol
Implementing a protocol
Using type aliases
Defining a generic
The generic function
The generic type
Type constraints
Protocol constraints
Where clauses for protocols
Where clauses for equality
Extending the existing generics
Enhancing arrays
Enhancing dictionaries
Putting protocols and generics to use
Generators
Sequences
Product of Fibonacci numbers under 50
Summary
7. Everything is Connected – Memory Management
How data is stored in a computer
Filesystem
Memory
Value types versus reference types
Determining a value or reference type
Behavior on assignment
Behavior on input
Capturing behavior of closure
Automatic reference counting
Object relationships
Strong relationships
Weak relationships
Unowned relationships
Strong reference cycles
Strong reference cycles between objects
Spotting
Fixing the cycles
With closures
Spotting
Fixing
Lost objects
Between objects
With closures
Summary
8. Writing Code the Swift Way – Design Patterns and Techniques
What is a design pattern?
Behavioral patterns
The iterator pattern
The observer pattern
The callback property
The notification center
Structural patterns
The composite pattern
Hierarchies
An alternative to subclassing
The delegate pattern
Model-View-Controller
Creational patterns
A singleton/shared instance
The abstract factory pattern
Using associated values effectively
Replacing class hierarchies
Concisely representing a state
Extending system types to reduce code
Lazy properties
Avoiding unnecessary memory usage
Avoiding unnecessary processing
Localizing logic to the concerned property
Summary
9. Harnessing the Past – Understanding and Translating Objective-C
Swift's relationship with Objective-C
The history of Objective-C
Constants and variables
Value types
Reference types
Containers
Arrays
Dictionaries
Control flow
Conditionals
Switches
Loops
Functions
Types
Structures
Enumerations
Classes
The basic class
Initializers
Properties
Methods
Inheritance
Categories
Protocols
Blocks
Projects
Header files
An implementation file
Organization
Calling Objective-C code from Swift
A bridging header
Using functions
Using types
Containers
Reference type translation
Summary
10. A Whole New World – Developing an App
Conceptualizing the app
Features
The interface
Data
Setting up the app project
Configuring the user interface
Running the app
Allowing picture taking
Temporarily saving a photo
Populating our photo grid
Refactoring to respect Model-View-Controller
Permanently saving a photo
Summary
11. What's Next? Resources, Advice, and Next Steps
Apple's documentation
Forums and blogs
Blog posts
Forums
Prominent figures
Podcasts
Summary
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜