際際滷

際際滷Share a Scribd company logo
于亠亟亠仆亳亠 于 Swift
- Objective-C 仍仂亢仆亶 亟仍 亳亰亠仆亳
- 弌于仂亠仂弍舒亰仆亶 亳仆舒从亳
[[UIView alloc] initWithFrame:CGRectMake(30, 30, 200, 200)]
- ObjC 舒亠仍 仂仆仂亳亠仍仆仂 仂于亠仄亠仆仆 磶从仂于 (Rust,
Ruby 亳 .亟.)
仂亠仄 Swift
丼仂 仆仂于仂亞仂 于 Swift
- Swift 弍亠亰仂仗舒仆亠亶 ObjC
- Generics
- Tuples
- Optionals
仗亠亟亠仍亠仆亳亠
仗亠亠仄亠仆仆
var aString: String = "String variable"
keyword name type initial value
let pi = 3.14159265359
仍ム 仆亠亳亰仄亠仆磳仄 亳仗仂于 亟舒仆仆:
- 亳 亳仆亳亳舒仍亳亰舒亳亳 于亠亠仆 仂 仂弍亠从 仆亠 亳亰仄亠仆亳
- 仗亳仄亳亰亳仂于舒仆 仂仆仂亳亠仍仆仂 亳亰仄亠仆磳仄 亳仗仂于
- 亠亰仂仗舒仆 仗亳 仄仆仂亞仂仗仂仂仆仂仄 仗仂亞舒仄仄亳仂于舒仆亳亳
丼仂 仆仂于仂亞仂 仂 仂从舒仄亳
NSString *baseUrlStr = @"http://vk.com/";
NSString *str = [baseUrlStr stringByAppendingString:@"feed"];
let baseUrlStr = "http://vk.com/"
let str = baseUrlStr + "feed"
ObjectiveC
Swift
丼仂 仆仂于仂亞仂 仂 仂从舒仄亳
NSInteger a = 5;
NSInteger b = 6;
NSString *str = [NSString stringWithFormat:@"仍亳 仄 仍仂亢亳仄 %d c %d
仗仂仍亳仄 %d", a, b, a + b];
let a = 5
let b = 6
let str = "仍亳 仄 仍仂亢亳仄 (a) c (b) 仗仂仍亳仄 (a + b)"
ObjectiveC
Swift
仂仍仍亠从亳亳
丐亠仗亠 仗仂亟亟亠亢亳于舒ム 仗仂亠 亳仗 亟舒仆仆
Array 亳 Dictionary
let numAr = [123]
NSArray *numAr = @[[NSNumber numberWithInt:123]];
Swift
ObjC
仂仍仍亠从亳亳
Array
Dictionary
let names = ["Jordan", "Jansyn", "Bennett"]
let namesAndAges = ["Jordan":25, "Jansyn":25, "Bennett": 1]
Array
var modify = [Jordan]
modify.appened(Jansyn)
//["Jordan","Jansyn"]
var modify = ["Jordan"]
modify[0] = "Jansyn"
//["Jansyn"]
var modify = ["Jordan","Jansyn"]
modify[0...1] = ["Bennett","Whitney"]
//["Bennett","Whitney"]
Dictionary
仂弍舒于仍亠仆亳亠 仆仂于 仍亠仄亠仆仂于
var fruits = ["仗亠仍亳仆":25]
fruits["舒仆舒仆"] = 30
亰仄亠仆亠仆亳亠 舒
morganFam["仗亠仍亳仆"] = 26
仂仍仍亠从亳亳
仂仍仍亠从亳亳 亳亰 舒亰仆 亳仗仂于 亟舒仆仆:
var multiTyped: [AnyObject] = ["foo", 01, true, 44.5]
AnyObject 舒仆舒仍仂亞 亳亰 ObjC id
Loops
var i = 6
var fac = 1
while i > 0 {
fac *= i
i -= 1
}
println(fac)
//Output: 720
Loops
for i in 0..<2
{
println(i)
}
//Output: 0,1
Ranges
for i in 0...2
{
println(i)
}
//Output: 0,1,2
Loops
Swift
let abc = "abc"
for char in abc
{
println(char)
}
ObjC
NSString *myStrings = @"abc";
for (NSInteger charIdx=0; charIdx < myStrings.length; charIdx++)
{
NSLog(@"%C", [myStrings characterAtIndex:charIdx]);
}
Loops
仗仂仍亰亶亠 _ , 亠仍亳 仆亠 于舒亢亠仆 亠亰仍舒
let base = 3
let power = 10
var answer = 1
for _ in 1...power
{
answer *= base
}
弍仂亟 从仂仍仍亠从亳亶
let morganFam = ["Jordan":25,"Jansyn":25,"Bennett":1]
//KVPs from dictionary come back as tuples
for (name,age) in morganFam
{
println("(name) is (age) years old.")
}
Loops
亳仄亠 for  仍仂于亳亠仄
for var idx = 0; idx < MAX; idx++
{
println("Index is (idx)")
}
亠 仂弍磶舒亠仍仆 从仂弍从亳
仆亳亳仍亳亰舒亳  var, 舒 仆亠  let
丕仍仂于亳 If
亠 仂弍磶舒亠仍仆 从仂弍从亳 仆舒亟 仍仂于亳亠仄
个亳亞仆亠 从仂弍从亳 仂弍磶舒亠仍仆 于亠亞亟舒
if 1 < 2 {
println("True")
} else {
println("False")
}
Switch Statements
亠 仆亠磦仆仂亞仂 仗仂于舒仍亳于舒仆亳 于 仍亠亟ム亳亠 仍仂于亳
Fallthrough
仍 于仂亟舒 亳亰 switch 亳仗仂仍亰亶亠 break
仍 仗仂从舒仍亳于舒仆亳 于 仍亠亟ム亠亠 仍仂于亳亠 亳仗仂仍亰亶亠 fa
亠 仆亢仆 亳亞仆亠 从仂弍从亳 {}
Switch Statements
You can get cute with them
Switches cont.
let anInt = 40
switch anInt
{
case 0, 1, 2:
println("Tiny")
case 3...5:
println("Medium")
case 6..<39:
println("Large")
case _ where anInt % 2 == 1:
println("It's odd")
case _ where anInt % 2 == 0:
println("Nope, it's not odd, it's even")
default:
break
}
Switch Statements
The old days
NSString *morganFamMember = @"Jordan";
if ([morganFamMember isEqualToString:@"Jansyn"])
{
NSLog(@"It's mom!");
}
else if([morganFamMember isEqualToString:@"Bennett"])
{
NSLog(@"It's the baby boy!");
}
else if([morganFamMember isEqualToString:@"Whit"])
{
NSLog(@"It's Jordan's sister!");
}
else if([morganFamMember isEqualToString:@"Jordan"])
{
NSLog(@"It's dad!");
}
else
{
NSLog(@"We don't know who it is.");
}
The new days
let morganFamMember = "Jordan"
switch morganFamMember
{
case "Jansyn":
println("It's mom!)
case "Bennett":
println("It's the baby boy!")
case "Whit":
println("It's Jordan's sister!")
case "Jordan":
println("It's dad!")
default:
println("We don't know who it is.")
}
Objective-C 仆亠 仗仂亟亟亠亢亳于舒亠 Switch  NSString
Tuples
let point:(Double, Double) = (4.00, 25.19)
let point2 = (4.00, 25.19)
println(point.0)
let point3 = (x: 2, y: 5)
println(point3.x)
Switch and Tuples
let somePoint = (1, 1)
switch somePoint {
case (0, 0):
println("(0, 0) is at the origin")
case (_, 0):
println("((somePoint.0), 0) is on the x-axis")
case (0, _):
println("(0, (somePoint.1)) is on the y-axis")
case (-2...2, -2...2):
println("((somePoint.0), (somePoint.1)) is inside the box")
default:
println("((somePoint.0), (somePoint.1)) is outside of the box")
}
Optionals
A core concept of Swift
let dic = ["Sister" : 25]
let years: Int = dic["Brother"]
println(years)
 仂 亠仍亳 仆亠 亰仆舒亠仆亳?
Optionals
A core concept of Swift
let dic = ["Sister" : 25]
let years: Int? = dic["Brother"]
println(years)
Optional- 仂 仂弍亠从舒 仆舒亟 仂弍亠从仂仄
.Some(obj)
.None
Optionals
舒从 亟仂舒 仂弍亠从 亳亰 Optional:
Unwrapping
let jansynsAge:Int? = morganFam["Jansyn"]
if jansynsAge == nil
{
println("Jansyn is apparently timeless.")
}
else
{
let foundAge = jansynsAge!
println("Jansyn is (foundAge) years old.")
}
仍亳 仄 于亠亠仆 仂 舒仄 亠 仂弍亠从, 亟仂舒亠仄 亠亠亰 !
Optionals
仍亳 仄 仆亠 于亠亠仆 亠 仍亳 舒仄 仂弍亠从, 亟仂舒亠仄 亠亠亰 if:
Short syntax
if let foundAge = jansynsAge
{
println("Jansyn is (foundAge) years old.")
}
else
{
println("Jansyn is apparently timeless.")
}
Optional Chaining
舒从 弍亠亰仂仗舒仆仂 亟仂舒 仗舒舒仄亠 亳亰 仂弍亠从舒, 从仂仂亶
仄仂亢亠 弍 仗仄?
Query multiple optionals
class Photo {
var url: String?
}
class Person {
var photo: Photo?
}
var aPerson = Person()
Optional Chaining
Cont.
class Photo {
var url: String?
}
class Person {
var photo: Photo?
}
var aPerson = Person()
if let photoUrl = aPerson.photo?.url
{
println("The photo url is (photoUrl)")
}
else
{
println("Person has no photo")
}
Functions
Overview
func printName()
{
println("It's Jordan")
}
亳仄亠  仗舒舒仄亠舒仄亳
func printName(name:String)
{
println("It's (name))
}
Functions
仂亰于舒舒亠仄亶 亠亰仍舒 仆从亳亳 仂仗亠亟亠仍磳仄 仗仂仍亠 ->
Return types
func printNameWithGreeting(name:String) -> String
{
return "It's (name), how ya doin' today?"
}
仆舒亠仆亳 仗仂 仄仂仍舒仆亳
func printNameWithGreeting(name:String = "Jansyn") -> String
{
return "It's (name), how ya doin' today?"
}
Functions
亳仄亠  Tuples
Multiple return types
func nameAndAge() -> (String, Int)
{
return ("Jordan",25)
}
let (name,age) = nameAndAge()
println("(name) is (age) years old.")
Functions
舒亰于舒仆亳 亟仍 于仂亰于舒舒亠仄 亰仆舒亠仆亳亶
Name multiple return values
func nameAndAge() -> (name:String, age:Int)
{
return ("Jordan",25)
}
let Jordan = nameAndAge()
println("(Jordan.name) is (Jordan.age) years old.")
//Jordan is 25 years old.
Closures (Lambda)
舒仄亠仆舒 弍仍仂从舒仄 亳亰 ObjC
Similar functionality
let aClosure =
{
println("This is a closure")
}
弌 仂弍磦仍亠仆亳亠仄 亳仗舒:
let aClosure: () -> () =
{
println("This is a closure")
}
Closures
亠亠亟舒舒 Closure 亠亠亰 仗舒舒仄亠
Passed as a parameter
func doTaskRepeated(count: Int, theTask: () -> ())
{
for i in 0..<count
{
theTask()
}
}
doTaskRepeated(10, {
println("A complex and awesome task.")
})
Classes
Much like Java and .NET
亠 仂弍磶舒亠仍仆仂 磦仆仂 仂仗亠亟亠仍 从仍舒 仂亟亳亠仍
class Person
{
}
Classes
class Jordan
{
let name = "Jordan"
}
Properties
仂亢亠仄 亰舒亟舒 亰仆舒亠仆亳 仗仂 仄仂仍舒仆亳
仂 仄仂仍舒仆亳 Internal 亟仂仗 从 仗舒舒仄亠舒仄
class Jordan
{
let name = "Jordan"
private let movieMostWatchedPastMonth = "Frozen"
}
private, internal, public
Classes
Custom getters and setters
Computed properties
class Jordan
{
let name = "Jordan"
var myLocation:(x:Float,y:Float)
{
get
{
return (10,30)
}
set
{
self.myLocation.x = newValue.x
self.myLocation.y = newValue.y
}
}
}
Classes
Readonly
Computed properties
class MyClass {
var str: String = "123"
var readonlyStr: String {
return "123"
}
}
Classes
init() keyword
Initialization
class Jordan
{
let name = "Jordan"
var age = 25
init()
{
//No need to return self
}
}
仂亢亠仄 亳仆亳亳舒仍亳亰亳仂于舒 从仂仆舒仆
class Jordan
{
let name = "Jordan"
let hobby = ""
init()
{
//No need to return self
}
init(hobby:String)
{
self.hobby = hobby
}
}
var aJordan = Jordan(hobby: "Basketball")
- 仗亳 仆舒仍亠亟仂于舒仆亳亳 于亰于舒亶亠 super.init()
Classes
仂亢亠仄 仆舒弍仍ミ莞委 亰舒 亳亰仄亠仆亠仆亳亠仄 property
Property Observers
class Bennett
{
private let setCurfew = 9 //p.m.
var curfew : Int
{
willSet
{
if curfew > setCurfew
{
println("GROUNDED")
}
}
didSet
{
if curfew < setCurfew
{
println("I am glad you obey.")
}
}
}
init()
{
self.curfew = setCurfew
}
}
Structs
弌从 亳仄亠ム 于亠 仂亢亠 舒仄仂亠 仂 亳 从仍舒, 从仂仄亠:
Not much has changed
- 亠 仗仂亟亟亠亢亳于舒ム 仆舒仍亠亟仂于舒仆亳亠
- Value types
Enumerations
Value types
Enums
enum BestNFLTeams:Int
{
case StLouisRams = 1, Patriots, Bucs, Chiefs
}
enum ResponceData {
case Success(AnyObject)
case Error(String)
}
舒亰舒弍仂从舒 仗仂亟 iOS
MVC
Intro to Swift techitout
Resources
- http://www.raywenderlich.com/
- The Swift Programming Language (iBook)
- The Swift Blog
- WWDC Videos

More Related Content

What's hot (19)

亠亠亟仆仂亶 从仆亶 亟仂从仍舒亟 仗仂 仍仂亞亞亳仂于舒仆亳亠
亠亠亟仆仂亶 从仆亶 亟仂从仍舒亟 仗仂 仍仂亞亞亳仂于舒仆亳亠亠亠亟仆仂亶 从仆亶 亟仂从仍舒亟 仗仂 仍仂亞亞亳仂于舒仆亳亠
亠亠亟仆仂亶 从仆亶 亟仂从仍舒亟 仗仂 仍仂亞亞亳仂于舒仆亳亠
Python Meetup
仂亳亰于仂亟亳亠仍仆仂 于 Django
仂亳亰于仂亟亳亠仍仆仂 于 Django仂亳亰于仂亟亳亠仍仆仂 于 Django
仂亳亰于仂亟亳亠仍仆仂 于 Django
MoscowDjango
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
Python Meetup
Python&Printer / 仆亟亠亶 从仂 / penta.by
Python&Printer / 仆亟亠亶 从仂 / penta.byPython&Printer / 仆亟亠亶 从仂 / penta.by
Python&Printer / 仆亟亠亶 从仂 / penta.by
Python Meetup
Developing highload servers with Java
Developing highload servers with JavaDeveloping highload servers with Java
Developing highload servers with Java
Andrei Pangin
C#. 仂仆仂于 从 亠从亳于仆仂仄 从仂亟
C#.  仂仆仂于 从 亠从亳于仆仂仄 从仂亟C#.  仂仆仂于 从 亠从亳于仆仂仄 从仂亟
C#. 仂仆仂于 从 亠从亳于仆仂仄 从仂亟
Vasiliy Deynega
仄亳亳亶 仂从仂仗亠于 R-仍从亳 于 弌++11
仄亳亳亶 仂从仂仗亠于  R-仍从亳 于 弌++11仄亳亳亶 仂从仂仗亠于  R-仍从亳 于 弌++11
仄亳亳亶 仂从仂仗亠于 R-仍从亳 于 弌++11
Yandex
仂于亠亟仆亠于仆亶 弌++: 舒仍亞仂亳仄 亳 亳亠舒仂 @ C++ Russia 2017
仂于亠亟仆亠于仆亶 弌++: 舒仍亞仂亳仄 亳 亳亠舒仂 @ C++ Russia 2017仂于亠亟仆亠于仆亶 弌++: 舒仍亞仂亳仄 亳 亳亠舒仂 @ C++ Russia 2017
仂于亠亟仆亠于仆亶 弌++: 舒仍亞仂亳仄 亳 亳亠舒仂 @ C++ Russia 2017
Mikhail Matrosov
仂仍亳仆 仆仂仆, 舒从 亟亠仍舒 仆亠 仆舒亟仂: C++ 于亠仍仂亳仗亠亟仂仂亠仆亳亠 亟仍 仗仂亠亳仂仆舒仍仂于
仂仍亳仆 仆仂仆, 舒从 亟亠仍舒 仆亠 仆舒亟仂: C++ 于亠仍仂亳仗亠亟仂仂亠仆亳亠 亟仍 仗仂亠亳仂仆舒仍仂于仂仍亳仆 仆仂仆, 舒从 亟亠仍舒 仆亠 仆舒亟仂: C++ 于亠仍仂亳仗亠亟仂仂亠仆亳亠 亟仍 仗仂亠亳仂仆舒仍仂于
仂仍亳仆 仆仂仆, 舒从 亟亠仍舒 仆亠 仆舒亟仂: C++ 于亠仍仂亳仗亠亟仂仂亠仆亳亠 亟仍 仗仂亠亳仂仆舒仍仂于
Sergey Platonov
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
Vladimir Rudnyh
仂亞仆舒 亳 仗亠亠亞仆舒 boost::lexical_cast
仂亞仆舒 亳 仗亠亠亞仆舒 boost::lexical_cast仂亞仆舒 亳 仗亠亠亞仆舒 boost::lexical_cast
仂亞仆舒 亳 仗亠亠亞仆舒 boost::lexical_cast
Roman Orlov
舒从 仆亠 亟亠仍舒 于舒亞舒仄亳 舒亳亠从 亳 仂仗亳仄亳亰舒亳, 亳亳仍仍 亠亠亰亳仆, Mail.ru Group
舒从 仆亠 亟亠仍舒 于舒亞舒仄亳 舒亳亠从 亳 仂仗亳仄亳亰舒亳, 亳亳仍仍 亠亠亰亳仆, Mail.ru Group舒从 仆亠 亟亠仍舒 于舒亞舒仄亳 舒亳亠从 亳 仂仗亳仄亳亰舒亳, 亳亳仍仍 亠亠亰亳仆, Mail.ru Group
舒从 仆亠 亟亠仍舒 于舒亞舒仄亳 舒亳亠从 亳 仂仗亳仄亳亰舒亳, 亳亳仍仍 亠亠亰亳仆, Mail.ru Group
Mail.ru Group
PVS-Studio 于 2021 - 亳仄亠 仂亳弍仂从
PVS-Studio 于 2021 - 亳仄亠 仂亳弍仂从PVS-Studio 于 2021 - 亳仄亠 仂亳弍仂从
PVS-Studio 于 2021 - 亳仄亠 仂亳弍仂从
Andrey Karpov
亠从亳 12. 亠亠, Python, 亠 弍亠亠.
亠从亳 12. 亠亠, Python, 亠 弍亠亠.亠从亳 12. 亠亠, Python, 亠 弍亠亠.
亠从亳 12. 亠亠, Python, 亠 弍亠亠.
Roman Brovko
亠亠亟仆仂亶 从仆亶 亟仂从仍舒亟 仗仂 仍仂亞亞亳仂于舒仆亳亠
亠亠亟仆仂亶 从仆亶 亟仂从仍舒亟 仗仂 仍仂亞亞亳仂于舒仆亳亠亠亠亟仆仂亶 从仆亶 亟仂从仍舒亟 仗仂 仍仂亞亞亳仂于舒仆亳亠
亠亠亟仆仂亶 从仆亶 亟仂从仍舒亟 仗仂 仍仂亞亞亳仂于舒仆亳亠
Python Meetup
仂亳亰于仂亟亳亠仍仆仂 于 Django
仂亳亰于仂亟亳亠仍仆仂 于 Django仂亳亰于仂亟亳亠仍仆仂 于 Django
仂亳亰于仂亟亳亠仍仆仂 于 Django
MoscowDjango
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
亠 从仂仆从亳亳 于 Python - 仍亠亞 丿亳亟仍仂于从亳亶, Python Meetup 26.09.2014
Python Meetup
Python&Printer / 仆亟亠亶 从仂 / penta.by
Python&Printer / 仆亟亠亶 从仂 / penta.byPython&Printer / 仆亟亠亶 从仂 / penta.by
Python&Printer / 仆亟亠亶 从仂 / penta.by
Python Meetup
Developing highload servers with Java
Developing highload servers with JavaDeveloping highload servers with Java
Developing highload servers with Java
Andrei Pangin
C#. 仂仆仂于 从 亠从亳于仆仂仄 从仂亟
C#.  仂仆仂于 从 亠从亳于仆仂仄 从仂亟C#.  仂仆仂于 从 亠从亳于仆仂仄 从仂亟
C#. 仂仆仂于 从 亠从亳于仆仂仄 从仂亟
Vasiliy Deynega
仄亳亳亶 仂从仂仗亠于 R-仍从亳 于 弌++11
仄亳亳亶 仂从仂仗亠于  R-仍从亳 于 弌++11仄亳亳亶 仂从仂仗亠于  R-仍从亳 于 弌++11
仄亳亳亶 仂从仂仗亠于 R-仍从亳 于 弌++11
Yandex
仂于亠亟仆亠于仆亶 弌++: 舒仍亞仂亳仄 亳 亳亠舒仂 @ C++ Russia 2017
仂于亠亟仆亠于仆亶 弌++: 舒仍亞仂亳仄 亳 亳亠舒仂 @ C++ Russia 2017仂于亠亟仆亠于仆亶 弌++: 舒仍亞仂亳仄 亳 亳亠舒仂 @ C++ Russia 2017
仂于亠亟仆亠于仆亶 弌++: 舒仍亞仂亳仄 亳 亳亠舒仂 @ C++ Russia 2017
Mikhail Matrosov
仂仍亳仆 仆仂仆, 舒从 亟亠仍舒 仆亠 仆舒亟仂: C++ 于亠仍仂亳仗亠亟仂仂亠仆亳亠 亟仍 仗仂亠亳仂仆舒仍仂于
仂仍亳仆 仆仂仆, 舒从 亟亠仍舒 仆亠 仆舒亟仂: C++ 于亠仍仂亳仗亠亟仂仂亠仆亳亠 亟仍 仗仂亠亳仂仆舒仍仂于仂仍亳仆 仆仂仆, 舒从 亟亠仍舒 仆亠 仆舒亟仂: C++ 于亠仍仂亳仗亠亟仂仂亠仆亳亠 亟仍 仗仂亠亳仂仆舒仍仂于
仂仍亳仆 仆仂仆, 舒从 亟亠仍舒 仆亠 仆舒亟仂: C++ 于亠仍仂亳仗亠亟仂仂亠仆亳亠 亟仍 仗仂亠亳仂仆舒仍仂于
Sergey Platonov
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
仂亳仍亳仂于舒仆亳亠 亳 仂仍舒亟从舒 Django
Vladimir Rudnyh
仂亞仆舒 亳 仗亠亠亞仆舒 boost::lexical_cast
仂亞仆舒 亳 仗亠亠亞仆舒 boost::lexical_cast仂亞仆舒 亳 仗亠亠亞仆舒 boost::lexical_cast
仂亞仆舒 亳 仗亠亠亞仆舒 boost::lexical_cast
Roman Orlov
舒从 仆亠 亟亠仍舒 于舒亞舒仄亳 舒亳亠从 亳 仂仗亳仄亳亰舒亳, 亳亳仍仍 亠亠亰亳仆, Mail.ru Group
舒从 仆亠 亟亠仍舒 于舒亞舒仄亳 舒亳亠从 亳 仂仗亳仄亳亰舒亳, 亳亳仍仍 亠亠亰亳仆, Mail.ru Group舒从 仆亠 亟亠仍舒 于舒亞舒仄亳 舒亳亠从 亳 仂仗亳仄亳亰舒亳, 亳亳仍仍 亠亠亰亳仆, Mail.ru Group
舒从 仆亠 亟亠仍舒 于舒亞舒仄亳 舒亳亠从 亳 仂仗亳仄亳亰舒亳, 亳亳仍仍 亠亠亰亳仆, Mail.ru Group
Mail.ru Group
PVS-Studio 于 2021 - 亳仄亠 仂亳弍仂从
PVS-Studio 于 2021 - 亳仄亠 仂亳弍仂从PVS-Studio 于 2021 - 亳仄亠 仂亳弍仂从
PVS-Studio 于 2021 - 亳仄亠 仂亳弍仂从
Andrey Karpov
亠从亳 12. 亠亠, Python, 亠 弍亠亠.
亠从亳 12. 亠亠, Python, 亠 弍亠亠.亠从亳 12. 亠亠, Python, 亠 弍亠亠.
亠从亳 12. 亠亠, Python, 亠 弍亠亠.
Roman Brovko

Viewers also liked (7)

c.v Ali abu gookh 2
c.v Ali abu gookh 2c.v Ali abu gookh 2
c.v Ali abu gookh 2
Ali Abujoukh
舒亠亞 舒从仂于舒 亞舒
舒亠亞 舒从仂于舒 亞舒舒亠亞 舒从仂于舒 亞舒
舒亠亞 舒从仂于舒 亞舒
GenderCentre
Development Programme 2008
Development Programme 2008Development Programme 2008
Development Programme 2008
Sunny Pawar
丶亂 弌丐 丕 弌个 丼亊 丱 丐 弌丐 ...
丶亂 弌丐 丕 弌个 丼亊 丱  丐 弌丐 ...丶亂 弌丐 丕 弌个 丼亊 丱  丐 弌丐 ...
丶亂 弌丐 丕 弌个 丼亊 丱 丐 弌丐 ...
GenderCentre
丐 丕丶
丐   丕丶丐   丕丶
丐 丕丶
GenderCentre
Building BI Project
Building BI ProjectBuilding BI Project
Building BI Project
Pooja Prabhu
Resume
ResumeResume
Resume
manoj sahu
c.v Ali abu gookh 2
c.v Ali abu gookh 2c.v Ali abu gookh 2
c.v Ali abu gookh 2
Ali Abujoukh
舒亠亞 舒从仂于舒 亞舒
舒亠亞 舒从仂于舒 亞舒舒亠亞 舒从仂于舒 亞舒
舒亠亞 舒从仂于舒 亞舒
GenderCentre
Development Programme 2008
Development Programme 2008Development Programme 2008
Development Programme 2008
Sunny Pawar
丶亂 弌丐 丕 弌个 丼亊 丱 丐 弌丐 ...
丶亂 弌丐 丕 弌个 丼亊 丱  丐 弌丐 ...丶亂 弌丐 丕 弌个 丼亊 丱  丐 弌丐 ...
丶亂 弌丐 丕 弌个 丼亊 丱 丐 弌丐 ...
GenderCentre
Building BI Project
Building BI ProjectBuilding BI Project
Building BI Project
Pooja Prabhu

Similar to Intro to Swift techitout (20)

Scala for android
Scala for androidScala for android
Scala for android
Alexander Rusin
Mera Dev Fest - Swift vs. Obj-C
Mera Dev Fest - Swift vs. Obj-CMera Dev Fest - Swift vs. Obj-C
Mera Dev Fest - Swift vs. Obj-C
Sergey Pronin
舒亠仄 仆亢仆舒 Scala?
舒亠仄 仆亢仆舒 Scala?舒亠仄 仆亢仆舒 Scala?
舒亠仄 仆亢仆舒 Scala?
Vasil Remeniuk
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒 弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
Pavel Tsukanov
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
Andrey Karpov
CodeFest 2014. 亞舒亠于 弌. 亊亰从 TypeScript 亳仍亳 JavaScript 仆舒 亠仂亳亟舒
CodeFest 2014. 亞舒亠于 弌.  亊亰从 TypeScript 亳仍亳 JavaScript 仆舒 亠仂亳亟舒CodeFest 2014. 亞舒亠于 弌.  亊亰从 TypeScript 亳仍亳 JavaScript 仆舒 亠仂亳亟舒
CodeFest 2014. 亞舒亠于 弌. 亊亰从 TypeScript 亳仍亳 JavaScript 仆舒 亠仂亳亟舒
CodeFest
Java 仂亠仆 2014 亰舒仆亳亠 3
Java 仂亠仆 2014 亰舒仆亳亠 3Java 仂亠仆 2014 亰舒仆亳亠 3
Java 仂亠仆 2014 亰舒仆亳亠 3
Technopark
仂亟仂亞亠仆亠舒亳 仆舒 仍亢弍亠 仂仗亳仄亳亰舒亳亳, 亞仂 丼亠于亟舒, 弌 仂仆
 仂亟仂亞亠仆亠舒亳 仆舒 仍亢弍亠 仂仗亳仄亳亰舒亳亳, 亞仂 丼亠于亟舒, 弌 仂仆  仂亟仂亞亠仆亠舒亳 仆舒 仍亢弍亠 仂仗亳仄亳亰舒亳亳, 亞仂 丼亠于亟舒, 弌 仂仆
仂亟仂亞亠仆亠舒亳 仆舒 仍亢弍亠 仂仗亳仄亳亰舒亳亳, 亞仂 丼亠于亟舒, 弌 仂仆
it-people
Java 8 puzzlers
Java 8 puzzlersJava 8 puzzlers
Java 8 puzzlers
Evgeny Borisov
msumobi2. 亠从亳 1
msumobi2. 亠从亳 1msumobi2. 亠从亳 1
msumobi2. 亠从亳 1
仍亠弍 丐舒舒仂于
Kotlin 仆舒 仗舒从亳从亠
Kotlin 仆舒 仗舒从亳从亠Kotlin 仆舒 仗舒从亳从亠
Kotlin 仆舒 仗舒从亳从亠
亳舒仍亳亶 亠仆亟亳从
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
Andrey Karpov
Kotlin
KotlinKotlin
Kotlin
GDG Odessa
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
Andrey Karpov
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
Andrey Karpov
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
Andrey Karpov
AlgoCollections (RUS)
AlgoCollections (RUS)AlgoCollections (RUS)
AlgoCollections (RUS)
Anton Bukov
丿从仂仍舒-亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 1. Objective-C
丿从仂仍舒-亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 1. Objective-C丿从仂仍舒-亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 1. Objective-C
丿从仂仍舒-亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 1. Objective-C
仍亠弍 丐舒舒仂于
Rambler.iOS #9: 仆舒仍亳亰亳亶 仂!
Rambler.iOS #9: 仆舒仍亳亰亳亶 仂!Rambler.iOS #9: 仆舒仍亳亰亳亶 仂!
Rambler.iOS #9: 仆舒仍亳亰亳亶 仂!
RAMBLER&Co
Scala on android
Scala on androidScala on android
Scala on android
Valeriya Atamanova
Mera Dev Fest - Swift vs. Obj-C
Mera Dev Fest - Swift vs. Obj-CMera Dev Fest - Swift vs. Obj-C
Mera Dev Fest - Swift vs. Obj-C
Sergey Pronin
舒亠仄 仆亢仆舒 Scala?
舒亠仄 仆亢仆舒 Scala?舒亠仄 仆亢仆舒 Scala?
舒亠仄 仆亢仆舒 Scala?
Vasil Remeniuk
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒 弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
Pavel Tsukanov
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒
Andrey Karpov
CodeFest 2014. 亞舒亠于 弌. 亊亰从 TypeScript 亳仍亳 JavaScript 仆舒 亠仂亳亟舒
CodeFest 2014. 亞舒亠于 弌.  亊亰从 TypeScript 亳仍亳 JavaScript 仆舒 亠仂亳亟舒CodeFest 2014. 亞舒亠于 弌.  亊亰从 TypeScript 亳仍亳 JavaScript 仆舒 亠仂亳亟舒
CodeFest 2014. 亞舒亠于 弌. 亊亰从 TypeScript 亳仍亳 JavaScript 仆舒 亠仂亳亟舒
CodeFest
Java 仂亠仆 2014 亰舒仆亳亠 3
Java 仂亠仆 2014 亰舒仆亳亠 3Java 仂亠仆 2014 亰舒仆亳亠 3
Java 仂亠仆 2014 亰舒仆亳亠 3
Technopark
仂亟仂亞亠仆亠舒亳 仆舒 仍亢弍亠 仂仗亳仄亳亰舒亳亳, 亞仂 丼亠于亟舒, 弌 仂仆
 仂亟仂亞亠仆亠舒亳 仆舒 仍亢弍亠 仂仗亳仄亳亰舒亳亳, 亞仂 丼亠于亟舒, 弌 仂仆  仂亟仂亞亠仆亠舒亳 仆舒 仍亢弍亠 仂仗亳仄亳亰舒亳亳, 亞仂 丼亠于亟舒, 弌 仂仆
仂亟仂亞亠仆亠舒亳 仆舒 仍亢弍亠 仂仗亳仄亳亰舒亳亳, 亞仂 丼亠于亟舒, 弌 仂仆
it-people
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
弌舒亳亠从亳亶 舒仆舒仍亳亰 从仂亟舒: 丼仂? 舒从? 舒亠仄?
Andrey Karpov
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
弌舒亳亠从亳亶 舒仆舒仍亳亰: 于仂从亞 Java 亰舒 60 仄亳仆
Andrey Karpov
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
亳仆亳仗 舒弍仂 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒 PVS-Studio
Andrey Karpov
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
仗 舒亰舒弍仂从亳 舒亳亠从仂亞仂 舒仆舒仍亳亰舒仂舒 从仂亟舒
Andrey Karpov
AlgoCollections (RUS)
AlgoCollections (RUS)AlgoCollections (RUS)
AlgoCollections (RUS)
Anton Bukov
丿从仂仍舒-亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 1. Objective-C
丿从仂仍舒-亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 1. Objective-C丿从仂仍舒-亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 1. Objective-C
丿从仂仍舒-亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 1. Objective-C
仍亠弍 丐舒舒仂于
Rambler.iOS #9: 仆舒仍亳亰亳亶 仂!
Rambler.iOS #9: 仆舒仍亳亰亳亶 仂!Rambler.iOS #9: 仆舒仍亳亰亳亶 仂!
Rambler.iOS #9: 仆舒仍亳亰亳亶 仂!
RAMBLER&Co

Intro to Swift techitout

  • 2. - Objective-C 仍仂亢仆亶 亟仍 亳亰亠仆亳 - 弌于仂亠仂弍舒亰仆亶 亳仆舒从亳 [[UIView alloc] initWithFrame:CGRectMake(30, 30, 200, 200)] - ObjC 舒亠仍 仂仆仂亳亠仍仆仂 仂于亠仄亠仆仆 磶从仂于 (Rust, Ruby 亳 .亟.) 仂亠仄 Swift
  • 3. 丼仂 仆仂于仂亞仂 于 Swift - Swift 弍亠亰仂仗舒仆亠亶 ObjC - Generics - Tuples - Optionals
  • 4. 仗亠亟亠仍亠仆亳亠 仗亠亠仄亠仆仆 var aString: String = "String variable" keyword name type initial value let pi = 3.14159265359 仍ム 仆亠亳亰仄亠仆磳仄 亳仗仂于 亟舒仆仆: - 亳 亳仆亳亳舒仍亳亰舒亳亳 于亠亠仆 仂 仂弍亠从 仆亠 亳亰仄亠仆亳 - 仗亳仄亳亰亳仂于舒仆 仂仆仂亳亠仍仆仂 亳亰仄亠仆磳仄 亳仗仂于 - 亠亰仂仗舒仆 仗亳 仄仆仂亞仂仗仂仂仆仂仄 仗仂亞舒仄仄亳仂于舒仆亳亳
  • 5. 丼仂 仆仂于仂亞仂 仂 仂从舒仄亳 NSString *baseUrlStr = @"http://vk.com/"; NSString *str = [baseUrlStr stringByAppendingString:@"feed"]; let baseUrlStr = "http://vk.com/" let str = baseUrlStr + "feed" ObjectiveC Swift
  • 6. 丼仂 仆仂于仂亞仂 仂 仂从舒仄亳 NSInteger a = 5; NSInteger b = 6; NSString *str = [NSString stringWithFormat:@"仍亳 仄 仍仂亢亳仄 %d c %d 仗仂仍亳仄 %d", a, b, a + b]; let a = 5 let b = 6 let str = "仍亳 仄 仍仂亢亳仄 (a) c (b) 仗仂仍亳仄 (a + b)" ObjectiveC Swift
  • 7. 仂仍仍亠从亳亳 丐亠仗亠 仗仂亟亟亠亢亳于舒ム 仗仂亠 亳仗 亟舒仆仆 Array 亳 Dictionary let numAr = [123] NSArray *numAr = @[[NSNumber numberWithInt:123]]; Swift ObjC
  • 8. 仂仍仍亠从亳亳 Array Dictionary let names = ["Jordan", "Jansyn", "Bennett"] let namesAndAges = ["Jordan":25, "Jansyn":25, "Bennett": 1]
  • 9. Array var modify = [Jordan] modify.appened(Jansyn) //["Jordan","Jansyn"] var modify = ["Jordan"] modify[0] = "Jansyn" //["Jansyn"] var modify = ["Jordan","Jansyn"] modify[0...1] = ["Bennett","Whitney"] //["Bennett","Whitney"]
  • 10. Dictionary 仂弍舒于仍亠仆亳亠 仆仂于 仍亠仄亠仆仂于 var fruits = ["仗亠仍亳仆":25] fruits["舒仆舒仆"] = 30 亰仄亠仆亠仆亳亠 舒 morganFam["仗亠仍亳仆"] = 26
  • 11. 仂仍仍亠从亳亳 仂仍仍亠从亳亳 亳亰 舒亰仆 亳仗仂于 亟舒仆仆: var multiTyped: [AnyObject] = ["foo", 01, true, 44.5] AnyObject 舒仆舒仍仂亞 亳亰 ObjC id
  • 12. Loops var i = 6 var fac = 1 while i > 0 { fac *= i i -= 1 } println(fac) //Output: 720
  • 13. Loops for i in 0..<2 { println(i) } //Output: 0,1 Ranges for i in 0...2 { println(i) } //Output: 0,1,2
  • 14. Loops Swift let abc = "abc" for char in abc { println(char) } ObjC NSString *myStrings = @"abc"; for (NSInteger charIdx=0; charIdx < myStrings.length; charIdx++) { NSLog(@"%C", [myStrings characterAtIndex:charIdx]); }
  • 15. Loops 仗仂仍亰亶亠 _ , 亠仍亳 仆亠 于舒亢亠仆 亠亰仍舒 let base = 3 let power = 10 var answer = 1 for _ in 1...power { answer *= base } 弍仂亟 从仂仍仍亠从亳亶 let morganFam = ["Jordan":25,"Jansyn":25,"Bennett":1] //KVPs from dictionary come back as tuples for (name,age) in morganFam { println("(name) is (age) years old.") }
  • 16. Loops 亳仄亠 for 仍仂于亳亠仄 for var idx = 0; idx < MAX; idx++ { println("Index is (idx)") } 亠 仂弍磶舒亠仍仆 从仂弍从亳 仆亳亳仍亳亰舒亳 var, 舒 仆亠 let
  • 17. 丕仍仂于亳 If 亠 仂弍磶舒亠仍仆 从仂弍从亳 仆舒亟 仍仂于亳亠仄 个亳亞仆亠 从仂弍从亳 仂弍磶舒亠仍仆 于亠亞亟舒 if 1 < 2 { println("True") } else { println("False") }
  • 18. Switch Statements 亠 仆亠磦仆仂亞仂 仗仂于舒仍亳于舒仆亳 于 仍亠亟ム亳亠 仍仂于亳 Fallthrough 仍 于仂亟舒 亳亰 switch 亳仗仂仍亰亶亠 break 仍 仗仂从舒仍亳于舒仆亳 于 仍亠亟ム亠亠 仍仂于亳亠 亳仗仂仍亰亶亠 fa 亠 仆亢仆 亳亞仆亠 从仂弍从亳 {}
  • 19. Switch Statements You can get cute with them Switches cont. let anInt = 40 switch anInt { case 0, 1, 2: println("Tiny") case 3...5: println("Medium") case 6..<39: println("Large") case _ where anInt % 2 == 1: println("It's odd") case _ where anInt % 2 == 0: println("Nope, it's not odd, it's even") default: break }
  • 20. Switch Statements The old days NSString *morganFamMember = @"Jordan"; if ([morganFamMember isEqualToString:@"Jansyn"]) { NSLog(@"It's mom!"); } else if([morganFamMember isEqualToString:@"Bennett"]) { NSLog(@"It's the baby boy!"); } else if([morganFamMember isEqualToString:@"Whit"]) { NSLog(@"It's Jordan's sister!"); } else if([morganFamMember isEqualToString:@"Jordan"]) { NSLog(@"It's dad!"); } else { NSLog(@"We don't know who it is."); } The new days let morganFamMember = "Jordan" switch morganFamMember { case "Jansyn": println("It's mom!) case "Bennett": println("It's the baby boy!") case "Whit": println("It's Jordan's sister!") case "Jordan": println("It's dad!") default: println("We don't know who it is.") } Objective-C 仆亠 仗仂亟亟亠亢亳于舒亠 Switch NSString
  • 21. Tuples let point:(Double, Double) = (4.00, 25.19) let point2 = (4.00, 25.19) println(point.0) let point3 = (x: 2, y: 5) println(point3.x)
  • 22. Switch and Tuples let somePoint = (1, 1) switch somePoint { case (0, 0): println("(0, 0) is at the origin") case (_, 0): println("((somePoint.0), 0) is on the x-axis") case (0, _): println("(0, (somePoint.1)) is on the y-axis") case (-2...2, -2...2): println("((somePoint.0), (somePoint.1)) is inside the box") default: println("((somePoint.0), (somePoint.1)) is outside of the box") }
  • 23. Optionals A core concept of Swift let dic = ["Sister" : 25] let years: Int = dic["Brother"] println(years) 仂 亠仍亳 仆亠 亰仆舒亠仆亳?
  • 24. Optionals A core concept of Swift let dic = ["Sister" : 25] let years: Int? = dic["Brother"] println(years) Optional- 仂 仂弍亠从舒 仆舒亟 仂弍亠从仂仄 .Some(obj) .None
  • 25. Optionals 舒从 亟仂舒 仂弍亠从 亳亰 Optional: Unwrapping let jansynsAge:Int? = morganFam["Jansyn"] if jansynsAge == nil { println("Jansyn is apparently timeless.") } else { let foundAge = jansynsAge! println("Jansyn is (foundAge) years old.") } 仍亳 仄 于亠亠仆 仂 舒仄 亠 仂弍亠从, 亟仂舒亠仄 亠亠亰 !
  • 26. Optionals 仍亳 仄 仆亠 于亠亠仆 亠 仍亳 舒仄 仂弍亠从, 亟仂舒亠仄 亠亠亰 if: Short syntax if let foundAge = jansynsAge { println("Jansyn is (foundAge) years old.") } else { println("Jansyn is apparently timeless.") }
  • 27. Optional Chaining 舒从 弍亠亰仂仗舒仆仂 亟仂舒 仗舒舒仄亠 亳亰 仂弍亠从舒, 从仂仂亶 仄仂亢亠 弍 仗仄? Query multiple optionals class Photo { var url: String? } class Person { var photo: Photo? } var aPerson = Person()
  • 28. Optional Chaining Cont. class Photo { var url: String? } class Person { var photo: Photo? } var aPerson = Person() if let photoUrl = aPerson.photo?.url { println("The photo url is (photoUrl)") } else { println("Person has no photo") }
  • 29. Functions Overview func printName() { println("It's Jordan") } 亳仄亠 仗舒舒仄亠舒仄亳 func printName(name:String) { println("It's (name)) }
  • 30. Functions 仂亰于舒舒亠仄亶 亠亰仍舒 仆从亳亳 仂仗亠亟亠仍磳仄 仗仂仍亠 -> Return types func printNameWithGreeting(name:String) -> String { return "It's (name), how ya doin' today?" } 仆舒亠仆亳 仗仂 仄仂仍舒仆亳 func printNameWithGreeting(name:String = "Jansyn") -> String { return "It's (name), how ya doin' today?" }
  • 31. Functions 亳仄亠 Tuples Multiple return types func nameAndAge() -> (String, Int) { return ("Jordan",25) } let (name,age) = nameAndAge() println("(name) is (age) years old.")
  • 32. Functions 舒亰于舒仆亳 亟仍 于仂亰于舒舒亠仄 亰仆舒亠仆亳亶 Name multiple return values func nameAndAge() -> (name:String, age:Int) { return ("Jordan",25) } let Jordan = nameAndAge() println("(Jordan.name) is (Jordan.age) years old.") //Jordan is 25 years old.
  • 33. Closures (Lambda) 舒仄亠仆舒 弍仍仂从舒仄 亳亰 ObjC Similar functionality let aClosure = { println("This is a closure") } 弌 仂弍磦仍亠仆亳亠仄 亳仗舒: let aClosure: () -> () = { println("This is a closure") }
  • 34. Closures 亠亠亟舒舒 Closure 亠亠亰 仗舒舒仄亠 Passed as a parameter func doTaskRepeated(count: Int, theTask: () -> ()) { for i in 0..<count { theTask() } } doTaskRepeated(10, { println("A complex and awesome task.") })
  • 35. Classes Much like Java and .NET 亠 仂弍磶舒亠仍仆仂 磦仆仂 仂仗亠亟亠仍 从仍舒 仂亟亳亠仍 class Person { }
  • 36. Classes class Jordan { let name = "Jordan" } Properties 仂亢亠仄 亰舒亟舒 亰仆舒亠仆亳 仗仂 仄仂仍舒仆亳 仂 仄仂仍舒仆亳 Internal 亟仂仗 从 仗舒舒仄亠舒仄 class Jordan { let name = "Jordan" private let movieMostWatchedPastMonth = "Frozen" } private, internal, public
  • 37. Classes Custom getters and setters Computed properties class Jordan { let name = "Jordan" var myLocation:(x:Float,y:Float) { get { return (10,30) } set { self.myLocation.x = newValue.x self.myLocation.y = newValue.y } } }
  • 38. Classes Readonly Computed properties class MyClass { var str: String = "123" var readonlyStr: String { return "123" } }
  • 39. Classes init() keyword Initialization class Jordan { let name = "Jordan" var age = 25 init() { //No need to return self } } 仂亢亠仄 亳仆亳亳舒仍亳亰亳仂于舒 从仂仆舒仆 class Jordan { let name = "Jordan" let hobby = "" init() { //No need to return self } init(hobby:String) { self.hobby = hobby } } var aJordan = Jordan(hobby: "Basketball") - 仗亳 仆舒仍亠亟仂于舒仆亳亳 于亰于舒亶亠 super.init()
  • 40. Classes 仂亢亠仄 仆舒弍仍ミ莞委 亰舒 亳亰仄亠仆亠仆亳亠仄 property Property Observers class Bennett { private let setCurfew = 9 //p.m. var curfew : Int { willSet { if curfew > setCurfew { println("GROUNDED") } } didSet { if curfew < setCurfew { println("I am glad you obey.") } } } init() { self.curfew = setCurfew } }
  • 41. Structs 弌从 亳仄亠ム 于亠 仂亢亠 舒仄仂亠 仂 亳 从仍舒, 从仂仄亠: Not much has changed - 亠 仗仂亟亟亠亢亳于舒ム 仆舒仍亠亟仂于舒仆亳亠 - Value types
  • 42. Enumerations Value types Enums enum BestNFLTeams:Int { case StLouisRams = 1, Patriots, Bucs, Chiefs } enum ResponceData { case Success(AnyObject) case Error(String) }
  • 45. Resources - http://www.raywenderlich.com/ - The Swift Programming Language (iBook) - The Swift Blog - WWDC Videos