---
title: 2014年からSwiftを振り返る！ #cswift
tags:  #swift #カジュアルswift勉強会  
author: [熊谷友宏](https://www.docswell.com/user/es_kumagai)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/YE9WZ9Y8E3.jpg?width=480
description: Swift を知ったつもりになっている今、その基本的なところを振り返ってみたら何か見えるものがあるかもしれない。そう思って 2014 年の MSM 2014 で使った資料を使って Swift 好きなみんなと談笑してみることにしました。この資料は MOSA MSM2014 のために用意した資料のうちの、発表用資料の抜粋です。  ※ Docswell での公開に移行する直前の Slideshare での閲覧数は 1,432 でした。
published: May 20, 16
canonical: https://www.docswell.com/s/es_kumagai/51R2W3-cswiftmsm2014forpresentation-160520031457
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/YE9WZ9Y8E3.jpg)

Swift カジュアルプログラミング
2014年からSwiftを振り返る！
2016.04.23
カジュアル Swift 勉強会 #7
EZ-NET 熊⾕友宏
http://ez-net.jp/


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GE8N196Z7D.jpg)

‫۽‬୩༑޺
!FT@LVNBHBJ
EZ-NETIUUQF[OFUKQ
ॻ੶ొஃ
9DPEFపఈղઆ
.04&quot;
9DPEFͷશ‫ػ‬ೳΛ
పఈతʹղઆͨ͠ຊ
049J04‫ܥ‬ͷྺ࢙ਂ͍
༗ྉձһ੍ͷษ‫ڧ‬ձ
9DPEFͰ΋໾ཱͭ͸ͣ
๏ਓձһ΋ଟ਺
ࢴ൛͸ઈ൛ɺిࢠॻ੶͸ൢചத
ॳ৺ऀ޲͚ηϛφʔͰొஃ


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LELPQW917R.jpg)

‫۽‬୩༑޺
!FT@LVNBHBJ
EZ-NETIUUQF[OFUKQ
ษ‫ڧ‬ձ
ԣ඿ iPhone ։ൃऀษ‫ڧ‬ձ
ΧδϡΞϧ Swift ษ‫ڧ‬ձ
ʲԣ඿ɾഅंಓʳ ZJEFW
ʲԣ඿ɾ੨༿୆ʳ DTXJGU
Θ͍Θ͍ɾΏΔ͘ɺJ1IPOF։ൃऀͷ
ΈΜͳͰָ͘͠ա͢͝ͷ͕໨తͷձ
ΏΔ͘ΈΜͳͰ4XJGUΛ‫ޠ‬Β͑Δ৔Λ
࡞Γͨͯ࢝͘Ίͨձ
ୈ̎̏ճΛʹ։࠵༧ఆ


# Page. 4

![Page Image](https://bcdn.docswell.com/page/4JM419Z57W.jpg)

‫۽‬୩༑޺
!FT@LVNBHBJ
EZ-NETIUUQF[OFUKQ
J04 049 &quot;QQMF8BUDIΞϓϦ
$PEF1JFDF
͍ͭ΋ͷి୎
ιʔείʔυΛ5XJUUFSͱ
(JTUʹಉ࣌౤ߘͰ͖Δɻ
‫ࣜࢉܭ‬΋‫͑ݟ‬Δి୎ΞϓϦɻ
XBUDI04ରԠ
ԻͰ࠶഑ୡΰου
&amp;;/&amp;5*11IPOF
؆୯ૢ࡞Ͱ
࠶഑ୡͷਃ͠ࠐΈɻ
J1IPOFͰͻ͔Γి࿩Λ࢖͏ɻ
ࣗ୐-&quot;/͔Βͷར༻ઐ༻


# Page. 5

![Page Image](https://bcdn.docswell.com/page/PJRWLG6Z79.jpg)

$PEF1JFDFGPS049
ษ‫ڧ‬ձΛָ͠ΉΞϓϦ
ιʔείʔυΛ5XJUUFSͱ(JTUʹಉ࣌౤ߘͰ͖Δ
ษ‫ڧ‬ձͰ஌‫ݟ‬ΛΈΜͳͱ‫ڞ‬༗͍ͨ࣌͠ͱ͔ʹศརʂ
Ͱ͖Δ͜ͱ
DTXJGU


# Page. 6

![Page Image](https://bcdn.docswell.com/page/PEXPWXM17X.jpg)

2014 年 11 ⽉ 1 ⽇


# Page. 7

![Page Image](https://bcdn.docswell.com/page/3EKDVWGMJD.jpg)

2014 年 11 ⽉ 1 ⽇
MOSA Software Meeting 2014


# Page. 8

![Page Image](https://bcdn.docswell.com/page/L73RM1N2J5.jpg)

MSM 2014 当時の資料で
今の Swift を振り返ってみよう！


# Page. 9

![Page Image](https://bcdn.docswell.com/page/87DY6XW67G.jpg)

当時の資料


# Page. 10

![Page Image](https://bcdn.docswell.com/page/VJP6YPXZE8.jpg)

ϕʔγοΫτϥοΫ
4XJGUͬͯͲΜͳ
ϓϩάϥϛϯά‫ͳޠݴ‬ͷʁ

!.04&quot;4PGUXBSF.FFUJOH
&amp;;/&amp;5‫۽‬୩༑޺
IUUQF[OFUKQ


# Page. 11

![Page Image](https://bcdn.docswell.com/page/2EV3G2LM7Q.jpg)

࢝ΊΔલʹ


# Page. 12

![Page Image](https://bcdn.docswell.com/page/57G38RXXJL.jpg)

1
.4.഑෍ࢿྉ
4XJGUͱ0CKFDUJWF$ͷߏจରরද
w ηογϣϯ಺Ͱ͸
࢖༻͠·ͤΜɻ
w 4XJGUΛ͸͡Ίͨͱ͖ͷ
ॿ͚ʹͳΕ͹޾͍Ͱ͢ɻ


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4EQ59V85JP.jpg)

໨ඪ
4XJGUΛָ͘͠࢖ͬͯ΄͍͠
ର৅
৽‫ޠݴ‬4XJGUʹؔ৺Λ‫͍ͯͤد‬Δํ


# Page. 14

![Page Image](https://bcdn.docswell.com/page/KJ49XM2V71.jpg)

4XJGUͬͯͲΜͳ‫ޠݴ‬ʁ
ʕ4XJGU‫ޠݴ‬Λ஌ָͬͯ͠ΉͨΊʹʕ


# Page. 15

![Page Image](https://bcdn.docswell.com/page/LE1KN8M4JG.jpg)

4XJGU֓ཁ


# Page. 16

![Page Image](https://bcdn.docswell.com/page/GEWD4Z3ZJ2.jpg)

৽‫ޠݴ‬4XJGUొ৔
!88%$


# Page. 17

![Page Image](https://bcdn.docswell.com/page/47ZG21VLE3.jpg)

ಛ௃
 &#039;BTU
ಈత‫ޠݴ‬Β͠͞Λͳͯ͘͠ߴ଎Խ
 .PEFSO
਌͠Έ΍͍͢‫ޠݴ‬ઃ‫ܭ‬
 4BGF
ෆଌͷࣄଶΛট͔ͳ͍‫ޠݴ‬ઃ‫ܭ‬
 *OUFSBDUJWF
ίϯύΠϧ‫͋Ͱޠݴ‬Γͳ͕Βଈ࣮࣌ߦ͕Մೳ


# Page. 18

![Page Image](https://bcdn.docswell.com/page/YJ6YVL5M7V.jpg)

ίϯηϓτ
0CKFDUJWF$
XJUIPVUUIF$
ʕ$‫ߏޠݴ‬଄͔Βͷ݃ผʕ


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GJ5GD1YQJ4.jpg)

৽͍֓͠೦
 $MPTVSFT
ؔ਺Λॊೈʹѻ͏
 5ZQFJOGFSFODF
‫ܕ‬ਪ࿦Ͱޮ཰ྑ͘ίʔσΟϯά
79
4
 .VMUJQMFSFUVSOUZQFT
໭Γ஋Ͱෳ਺ͷ஋ΛฦͤΔ
 (FOFSJDT
‫ʹܕ‬റΒΕͳ͍࣮૷
 /BNFTQBDFT
Ϟδϡʔϧ୯ҐͰͷ໊લۭؒ
122


# Page. 20

![Page Image](https://bcdn.docswell.com/page/9E2Y81GWER.jpg)

‫׵ޓ‬ੑ
 *OUFSPQFSBCJMJUZ
4XJGUΫϥεΛ0CKFDUJWF$͔Β࢖༻
$PDPB&quot;1*Λ4XJGUίʔυ͔Βར༻
 .JYBOE.BUDI
0CKFDUJWF$ϑΝΠϧͱ4XJGUϑΝΠϧΛ
ͻͱͭͷϓϩδΣΫτʹࠞࡏͯ͠ซ༻
 .JHSBUJPO
‫ط‬ଘͷ0CKFDUJWF$ίʔυΛ4XJGU͔Β
4XJGUΒ͍͠ߏจͰར༻


# Page. 21

![Page Image](https://bcdn.docswell.com/page/D7YG6ZV97M.jpg)

0CKFDUJWF$ʹऔͬͯมΘΔʁ


# Page. 22

![Page Image](https://bcdn.docswell.com/page/VENGZ3MDJ8.jpg)

ͦΕ͸ະ஌ͷੈք
⚫︎
·ͩ࢈·Εͯؒ΋ͳ͍‫ޠݴ‬
⚫︎
ϦϦʔε௚લ·ͰཔΓͳ͔ͬͨ
⚫︎
&quot;QQMFͷҙ‫ࠐؾ‬Έ͸‫͡ײ‬Δ
⚫︎
͍Α͍Α‫͖͍ͨͯͮؾ׆‬ҹ৅
4XJGU͔Β0CKFDUJWF$͸੍໿͕͋ͬͯ΋ɺ
‫ٯ‬͸ࣗ༝ͳҹ৅ɺऔͬͯ୅ΘΔՄೳੑ͸͋Δʁ


# Page. 23

![Page Image](https://bcdn.docswell.com/page/Y79WZ9N873.jpg)

औͬͯ୅ΘΔ͔ΑΓ΋
·ͣ4XJGUΛָ͠Έ·͠ΐ͏ʂ


# Page. 24

![Page Image](https://bcdn.docswell.com/page/G78N19KZJD.jpg)

4XJGUৄࡉ


# Page. 25

![Page Image](https://bcdn.docswell.com/page/L7LPQWZ1JR.jpg)

4XJGUͷಛ௃


# Page. 26

![Page Image](https://bcdn.docswell.com/page/4EM419V5JW.jpg)

4XJGUͷಛ௃
&#039;BTU
⚫︎
0CKFDUJWF$ΑΓ଎͍Β͍͠
ެࣜൃදͰ͸ʜιʔτͰYߴ଎ʁ
⚫︎
଎౓ͷ伴͸ϝιου‫ͼݺ‬ग़͠ʁ
0CKFDUJWF$͸ηϨΫλʹΑΔಈతղܾ
4XJGU͸Ծ૝ؔ਺ςʔϒϧ WUBCMF ʁ
⚫︎
଎౓Λੜ͔ͤΔͷ͸‫ݶ‬ఆత͔΋ʁ
७4XJGUʹ͸ಈతղܾ͕ͳ͍༷ࢠ
ࠓ͸0CKFDUJWF$‫׵ޓ‬Ϋϥε͕ओྲྀ


# Page. 27

![Page Image](https://bcdn.docswell.com/page/PERWLG2ZJ9.jpg)

4XJGUͷಛ௃
.PEFSO
0CKFDUJWF$
NSArray *array = @[ @&quot;A&quot;, @&quot;B&quot;, @&quot;C&quot; ];
NSString *string =
[array componentsJoinedByString:@&quot;, &quot;];
NSLog(@&quot;Value: %@&quot;, string);
4XJGU
let array = [ &quot;A&quot;, &quot;B&quot;, &quot;C&quot; ]
let string = join(&quot;, &quot;, array)
println(&quot;Value: \(string)&quot;)


# Page. 28

![Page Image](https://bcdn.docswell.com/page/P7XPWXD1JX.jpg)

4XJGUͷಛ௃
4BGF
ෆଌΛੜ·ͳ͍ίʔυ͕ॻ͚Δ
㲈ෆଌΛ‫͍ͳ·ؚ‬ίʔυΛ‫ڧ‬ཁ͞ΕΔ
⚫︎
OJMΛऔΔ͔൱͔ͷ໌͕ࣔৗʹඞཁʂ
8
⚫︎
ҟͳΔ‫ܕ‬ಉ࢜ͷԋࢉ͸ཁม‫׵‬ʂ
10
⚫︎
TXJUDIจͰશέʔεͷ໢ཏඞਢʂ
44
⚫︎
ྫ֎‫Ͱܥ‬ΤϥʔॲཧΛҕͶΒΕͳ͍ʂ
ʕͦΕΛࢧԉ͢ΔͨΊͷ‫ػ‬ೳ͕ॆ࣮ʕ


# Page. 29

![Page Image](https://bcdn.docswell.com/page/37KDVWXMED.jpg)

4XJGUͷಛ௃
*OUFSBDUJWF
Ϗϧυૢ࡞ෆཁͰίʔυΛ࣮ߦՄೳ
⚫︎
⚫︎
9DPEF͔Βͷஞ࣮࣍ߦ
1MBZHSPVOE
λʔϛφϧ͔Βͷஞ࣮࣍ߦ
YDSVOTXJGU
1


# Page. 30

![Page Image](https://bcdn.docswell.com/page/LJ3RM152E5.jpg)

0CKFDUJWF$
XJUIPVUUIF$


# Page. 31

![Page Image](https://bcdn.docswell.com/page/8JDY6XD6JG.jpg)

0CKFDUJWF$XJUIPVUUIF$
ߦ຤จࣈ͔Βͷ݃ผ
ߦ຤ͷηϛίϩϯΛলུՄೳʹ
0CKFDUJWF$
i += 10;
4XJGU
i += 10


# Page. 32

![Page Image](https://bcdn.docswell.com/page/VEP6YP6Z78.jpg)

0CKFDUJWF$XJUIPVUUIF$
৚݅จͷ‫͔ހׅ‬Βͷ݃ผ
ධՁࣜͷ֎ଆ‫͕ހׅ‬লུՄೳʹ
0CKFDUJWF$
if (i == 10)
{
}
4XJGU
if i == 10 {
}


# Page. 33

![Page Image](https://bcdn.docswell.com/page/27V3G23MJQ.jpg)

0CKFDUJWF$XJUIPVUUIF$
ඇΦϒδΣΫτ‫͔ܕ‬Βͷ݃ผ
͢΂ͯͷ‫ܕ‬ͷର౳ͳѻ͍͕Մೳʹ
⚫︎
શͯͷ‫͕ܕ‬ΦϒδΣΫτ
⚫︎
*OU΍FOVN΋ϝιουΛ࣋ͯΔ
⚫︎
ؔ਺΋ΦϒδΣΫτͱͯ͠ѻ͑Δ


# Page. 34

![Page Image](https://bcdn.docswell.com/page/5JG38R3XEL.jpg)

0CKFDUJWF$XJUIPVUUIF$
$Ϧςϥϧ͔Βͷ݃ผ
$ϦςϥϧΛ‫͢ʹؾ‬Δඞཁ͕ͳ͘ͳͬͨ
0CKFDUJWF$
NSString *str = @&quot;OBJC STRING&quot;;
NSNumber *num = @10;
char* str = &quot;C STRING&quot;;
int num = 10;
4XJGU
let str:String = &quot;SWIFT STRING&quot;
let num:Int = 10
17


# Page. 35

![Page Image](https://bcdn.docswell.com/page/47Q59V55EP.jpg)

0CKFDUJWF$XJUIPVUUIF$
24
Ϧςϥϧද‫ݱ‬ͷ؆ૉԽ
ΦϒδΣΫτΛҙຯ͢Δ!ͷఫഇ
0CKFDUJWF$
NSArray *arr = @[ @5, @10 ];
NSDictionary *dic = @{ @&quot;K1&quot;:@1, @&quot;K2&quot;:@2 };
4XJGU
let arr:[Int] = [ 5, 10 ]
let dic:[String:Int] = [ &quot;K1&quot;: 1, &quot;K2&quot;: 2 ]
34


# Page. 36

![Page Image](https://bcdn.docswell.com/page/KE49XM9VJ1.jpg)

0CKFDUJWF$XJUIPVUUIF$
ม਺ͱఆ਺ͷ࡮৽
ఆ਺ͷೖΕ෺ͱม਺ͷೖΕ෺
0CKFDUJWF$
NSInteger i = 10;
const NSInteger i = 10;
NSString* s = @&quot;TEXT&quot;;
NSMutableString* s = [@&quot;TEXT&quot; mutableCopy];
4XJGU
var i = 10
let i = 10
let s = &quot;TEXT&quot;
var s = &quot;TEXT&quot;
3


# Page. 37

![Page Image](https://bcdn.docswell.com/page/L71KN8K4EG.jpg)

0CKFDUJWF$XJUIPVUUIF$
จࣈྻϦςϥϧͷ֦ுʢల։ʣ
Ϧςϥϧ಺ͰμΠϨΫτʹॲཧΛల։Մೳ
0CKFDUJWF$
NSString *str = [NSString
stringWithFormat:@&quot;Name=%@, Value=%d&quot;,
name, value];
4XJGU
let str:String
= &quot;Name=\(name), Value=\(value)&quot;
20


# Page. 38

![Page Image](https://bcdn.docswell.com/page/G7WD4ZDZE2.jpg)

0CKFDUJWF$XJUIPVUUIF$
จࣈྻϦςϥϧͷ֦ுʢ࿈݁ʣ
ՃࢉԋࢉࢠͰจࣈྻΛ࿈݁Մೳʹ
0CKFDUJWF$
NSString *str = [@&quot;MSM&quot;
stringByAppendingString:@&quot;2014&quot;];
4XJGU
let str:String = &quot;MSM&quot; + &quot;2014&quot;
18


# Page. 39

![Page Image](https://bcdn.docswell.com/page/4JZG21GL73.jpg)

0CKFDUJWF$XJUIPVUUIF$
19
จࣈྻϦςϥϧͷ֦ுʢൺֱʣ
౳ՁԋࢉࢠʹΑΔจࣈྻൺֱ͕Մೳʹ
0CKFDUJWF$
if ([string1 isEqualToString:string2])
{
}
4XJGU
if string1 == string2 {
}
3


# Page. 40

![Page Image](https://bcdn.docswell.com/page/YE6YVLYMJV.jpg)

0CKFDUJWF$XJUIPVUUIF$
72
໊લ෇͖Ҿ਺
ؔ਺΍ϝιουͷҾ਺ʹ໊લΛ໌ࣔͰ͖Δ
0CKFDUJWF$
[MyClass methodWithValue:10.0 ofType:@&quot;$&quot;]
4XJGU
MyClass.method(value:10.0, ofType:&quot;$&quot;)
90


# Page. 41

![Page Image](https://bcdn.docswell.com/page/GE5GD1GQE4.jpg)

0CKFDUJWF$XJUIPVUUIF$
8
41
50
৽͍͠σʔλ‫ܕ‬
͕͠ΒΈͷͳ͍εϚʔτͳॻࣜʹ
4XJGU
// タプル…複数の型を自由に組み合わせられる
let value:(Int,String) = (200, &quot;SWIFT&quot;)
4
// nil 許容型…値の他に「ない」状態を扱える
let value:Int? = nil
5
// 値つき列挙型…自由な値を持てる列挙子
enum Enumerate {
case Name(String)
case NoName
}


# Page. 42

![Page Image](https://bcdn.docswell.com/page/972Y81YW7R.jpg)

OJM‫ڐ‬༰‫ؔ͢ʹܕ‬Δηογϣϯʜ
ϕʔγοΫτϥοΫ
ʙʜߴ‫ڮ‬੓໌͞·
ʰ4XJGUΛࢧ͑ΔPQUJPOBMͷഎ‫ܠ‬ʱ


# Page. 43

![Page Image](https://bcdn.docswell.com/page/DJYG6ZG9JM.jpg)

0CKFDUJWF$XJUIPVUUIF$
44
62
63
64
65
66
67
TXJUDIߏจͷେ෯ͳ֦ு
੔਺஋ϦςϥϧҎ֎Ͱ΋෼‫͕ذ‬Մೳʹ
⚫︎
ม਺ʹ֨ೲͨ͠஋Λ࢖ͬͨ෼‫ذ‬
⚫︎
ൣғʹΑΔ෼‫ذ‬
⚫︎
จࣈྻʹΑΔ෼‫ذ‬
⚫︎
λϓϧͷ஋ʹԠͨ͡෼‫ذ‬
⚫︎
஋͖ͭྻ‫ܕڍ‬ͷ஋ʹԠͨ͡෼‫ذ‬
6
ʕߴ౓ͳᝲ͍෼͚Λ໌ྎʹ‫ࡌه‬Մೳʕ


# Page. 44

![Page Image](https://bcdn.docswell.com/page/V7NGZ3GDE8.jpg)

0CKFDUJWF$XJUIPVUUIF$
΄͔ʹ΋͍Ζ͍Ζʜ
⚫︎
ϔομʔϑΝΠϧෆཁ
⚫︎
ಉ໊͡લͰҟͳΔҾ਺ͷؔ਺
⚫︎
Ҿ਺ͷ‫ط‬ఆ஋
⚫︎
̔ਐ਺ɺ̎ਐ਺Ϧςϥϧ


# Page. 45

![Page Image](https://bcdn.docswell.com/page/YJ9WZ9W8J3.jpg)

0CKFDUJWF$XJUIPVUUIF$
$‫ޠݴ‬ͷ͕͠ΒΈΛࣺͯΔ͜ͱͰ
‫ػޠݴ‬ೳΛେ෯ʹ޲্


# Page. 46

![Page Image](https://bcdn.docswell.com/page/GJ8N19NZED.jpg)

4XJGUͷ
৽͍֓͠೦


# Page. 47

![Page Image](https://bcdn.docswell.com/page/LJLPQWP1ER.jpg)

4XJGUͷ৽͍֓͠೦
79
$MPTVSF
ଈ੮ؔ਺Λγϯϓϧʹ࡞ͬͯ࢖͑Δ
4XJGU
// クロージャの定義
let isOK:(Int)-&gt;Bool = {(code:Int)-&gt;Bool in
return contains(200..&lt;300, code)
}
// 関数のように実行
let result = isOK(200)
// 別の関数の引数に渡して実行
let result = contains(statuses, isOK)
7


# Page. 48

![Page Image](https://bcdn.docswell.com/page/47M41945EW.jpg)

4XJGUͷ৽͍֓͠೦
5ZQFJOGFSFODF
ঢ়‫͔گ‬Β‫໌͕ܕ‬Β͔ͳ৔߹ʹ‫ه‬ड़ෆཁʹ
⚫︎
ॳ‫ظ‬஋Λ൐͏ม਺΍ఆ਺ͷએ‫ݴ‬
4
6
⚫︎
ίϨΫγϣϯ͔ΒཁૉΛॱ࣍औಘ
31
40
⚫︎
ྻ‫ܕڍ‬Λѻ͏͜ͱ͕໌֬ͳ৔߹
43
44
⚫︎
੍‫ߏޚ‬จͰMFUͰ஋ͷରԠΛऔΔ
13
65
⚫︎
Ϋϩʔδϟͷ໭Γ஋΍Ҿ਺
81
8


# Page. 49

![Page Image](https://bcdn.docswell.com/page/P7RWLGWZE9.jpg)

4XJGUͷ৽͍֓͠೦
.VMUJQMFSFUVSOUZQFT
໭Γ஋Ͱෳ਺ͷ஋ΛฦͤΔ
4XJGU
func getStatus()-&gt;(code:Int, status:String) {
return (200, &quot;OK&quot;)
}
4XJGU
enum Status {
case OK
case Failed(String)
}
func getStatus()-&gt;Status {
return Status.OK
}
50
67


# Page. 50

![Page Image](https://bcdn.docswell.com/page/PJXPWXP1EX.jpg)

4XJGUͷ৽͍֓͠೦
122
(FOFSJDT
‫ʹܕ‬റΒΕͳ͍࣮૷
⚫︎
೚ҙͷ‫ܕ‬Λѻ͑ΔΦϒδΣΫτ
⚫︎
ίʔυͷ‫ڞ‬௨Խɾ࣮૷ͷޮ཰Խ
⚫︎
ද‫͖Ͱݱ‬Δ͜ͱ͕ଟํ໘ʹ޿͕Δ
⚫︎
೉қ౓ͷߴ͍‫ػ‬ೳ
4XJGU
func add&lt;T:IntegerArithmeticType&gt;(v1:T, v2:T)-&gt;T {
return value1 + value2
}
9


# Page. 51

![Page Image](https://bcdn.docswell.com/page/3JKDVWDM7D.jpg)

4XJGUͷ৽͍֓͠೦
/BNFTQBDFT
Ϟδϡʔϧ୯ҐͰͷ໊લۭؒ
⚫︎
ϑϨʔϜϫʔΫ୯ҐͰϞδϡʔϧΛ෼཭
⚫︎
ಉ໊͡લͷΦϒδΣΫτΛ۠ผՄೳ
4XJGU
import MyModule1
import MyModule2
let obj1 = MyModule1.MyClass()
let obj2 = MyModule2.MyClass()


# Page. 52

![Page Image](https://bcdn.docswell.com/page/LE3RM1R275.jpg)

4XJGUͱ0CKFDUJWF$ͷ
‫׵ޓ‬ੑ


# Page. 53

![Page Image](https://bcdn.docswell.com/page/8EDY6XY6EG.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
*OUFSPQFSBCJMJUZ
0CKFDUJWF$ͱ4XJGUͷ૬‫ޓ‬ӡ༻


# Page. 54

![Page Image](https://bcdn.docswell.com/page/V7P6YP2ZJ8.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
*OUFSPQFSBCJMJUZ
4XJGUΫϥεΛ0CKFDUJWF$Ͱ࢖༻Մೳ
⚫︎
/40CKFDUͷ‫ܧ‬ঝ·ͨ͸!PCKDଐੑ͕ඞਢ
⚫︎
ϝιου໊͕0CKFDUJWF$తʹࣗಈௐ੔
⚫︎
⚫︎
!PCKDΫϥεͰ͸ΠϯελϯεΛฦͨ͢Ίͷ
Ϋϥεϝιουͷ࣮૷͕ඞཁ
0CKFDUJWF$ʹͳ͍‫ػ‬ೳΛ࢖ͬͨ΋ͷ͸ෆՄ
ྻ‫ ܕڍ‬Φʔόʔϩʔυ (FOFSJDT ʜ


# Page. 55

![Page Image](https://bcdn.docswell.com/page/2JV3G2DMEQ.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
*OUFSPQFSBCJMJUZ
4XJGUΫϥεΛ0CKFDUJWF$Ͱ࢖༻Մೳ
4XJGU
class MyClass : NSObject {
var value:Int
init(value:Int)
}
0CKFDUJWF$
MyClass* obj
= [[MyClass alloc] initWithValue:10];
obj.value;
ʕJNQPSU130+/&quot;.&amp;4XJGUIͰར༻Մೳʹʕ


# Page. 56

![Page Image](https://bcdn.docswell.com/page/5EG38RYX7L.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
*OUFSPQFSBCJMJUZ
$PDPB&quot;1*Λ4XJGU͔Βར༻Մೳ
⚫︎
΄΅શͯΛ4XJGUΒ͍͠ίʔυͰར༻Մೳ
⚫︎
ར༻Ͱ͖ͳ͍΋ͷ΋͋Δ
4XJGU
let value:NSString = &quot;TEST STRING&quot;
value.stringByReplacingOccurrencesOfString(&quot;TEST&quot;,
withString: &quot;SWIFT&quot;,
options: NSStringCompareOptions.LiteralSearch,
range: NSMakeRange(0, value.length))
ʕJNQPSU&#039;PVOEBUJPO౳Ͱར༻Մೳʹʕ


# Page. 57

![Page Image](https://bcdn.docswell.com/page/4JQ59VM57P.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
.JYBOE.BUDI
0CKFDUJWF$ͱ4XJGUͱΛࠞࡏ


# Page. 58

![Page Image](https://bcdn.docswell.com/page/K749XMVVE1.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
.JYBOE.BUDI
0CKFDUJWF$ϑΝΠϧͱ4XJGUϑΝΠϧΛࠞࡏ


# Page. 59

![Page Image](https://bcdn.docswell.com/page/LJ1KN8347G.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
.JHSBUJPO
‫ط‬ଘͷ0CKFDUJWF$Λ4XJGUͰ‫༻׆‬


# Page. 60

![Page Image](https://bcdn.docswell.com/page/GJWD4ZPZ72.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
.JHSBUJPO
ࣗ࡞0CKFDUJWF$ΫϥεΛ4XJGUͰ࢖༻
⚫︎
⚫︎
⚫︎
ϓϩδΣΫτͷ#VJME4FUUJOHTͰ
0CKFDUJWF$#SJEHJOH)FBEFSΛొ࿥
ͦ͜΁4XJGUͰ࢖͍͍ͨϔομʔϑΝΠϧΛ
JNQPSU͢Δͱ4XJGUͰར༻ՄೳʹͳΔ
$
0CKFDUJWF$
ϔομʔʹ$
ίʔυ͸ར༻ෆՄ
‫ݻ‬༗ͷ‫ػ‬ೳ͑͞ͳ͚Ε͹0,
ʕ4XJGUଆͰJNQPSU͢Δඞཁͳ͘ར༻Մೳʕ


# Page. 61

![Page Image](https://bcdn.docswell.com/page/4EZG21KLJ3.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
.JHSBUJPO
ࣗ࡞0CKFDUJWF$ΫϥεΛ4XJGUͰ࢖༻
0CKFDUJWF$
@interface MyClass : NSObject
@property (readwrite) NSInteger value;
- (instancetype)initWithValue:(NSInteger)value;
@end
4XJGU
let obj = MyClass(value:10)
obj.value


# Page. 62

![Page Image](https://bcdn.docswell.com/page/Y76YVLQMEV.jpg)

4XJGUͱ0CKFDUJWF$ͷ‫׵ޓ‬ੑ
0CKFDUJWF$ͱ4XJGUͷ
૬‫ޓ‬৐ΓೖΕ͕ඇৗʹ͠΍͍͢
ʕখ͍͞୯ҐͰͷ4XJGU΁ͷҠߦ͕Մೳʕ


# Page. 63

![Page Image](https://bcdn.docswell.com/page/G75GD1RQ74.jpg)

0CKFDUJWF$ͱ4XJGUͷ
૬‫ޓ‬ӡ༻ʹؔ͢Δηογϣϯʜ
ϕʔγοΫτϥοΫ
ʙʜத໺༸Ұ͞·
ʰ4XJGU࣮ફฤ0CKFDUJWF$͔Βͷ
Ҡߦͱίʔυͷ‫ڞ‬ଘ 9DPEFͷ৽‫ػ‬ೳ঺հʱ


# Page. 64

![Page Image](https://bcdn.docswell.com/page/9J2Y81DWJR.jpg)

4XJGUͬͯ೉͍͠ʁ


# Page. 65

![Page Image](https://bcdn.docswell.com/page/DEYG6Z29EM.jpg)

伴ΛѲΔͱ͜Ζ
 0QUJPOBMͱ$POWFSUJCMF
೉͘͠‫͡ײ‬Δͷ͸͜͜͚ͩ͔΋ʁ
 (FOFSJDTͱ1SPUPDPMT
4XJGU‫ʹޠݴ‬ະདྷΛ‫͡ײ‬Δͱ͜Ζʂ


# Page. 66

![Page Image](https://bcdn.docswell.com/page/VJNGZ38D78.jpg)

4XJGUΛָ͠Έ·͠ΐ͏ʂ


