Slide 1

Slide 1 text

େͰখΛ݉ͶΔͳ by takasek 2016/9/28 potatotips 33 1

Slide 2

Slide 2 text

2

Slide 3

Slide 3 text

3

Slide 4

Slide 4 text

օ͞Μ͸ ೔෇Λ؅ཧ͢Δͱ͖ɺ ͲͷܕΛ࢖͍·͔͢ʁ 4

Slide 5

Slide 5 text

NSDate? 5

Slide 6

Slide 6 text

΋ͱ͍ Date? 6

Slide 7

Slide 7 text

͋ͳͨͷΞϓϦͷ ೔෇࢓༷ 4 Ұ೔͸24࣌ؒ 7

Slide 8

Slide 8 text

͋ͳͨͷΞϓϦͷ ೔෇࢓༷ 4 Ұ೔͸24࣌ؒ 4 ೔෇͕มΘΔͷ͸ɺே8࣌ 8

Slide 9

Slide 9 text

͋ͳͨͷΞϓϦͷ ೔෇࢓༷ 4 Ұ೔͸24࣌ؒ 4 ೔෇͕มΘΔͷ͸ɺே8࣌ ɹ ※͜ͷ೔෇Λɺ ɹ௨ৗͷ೔෇ͱ۠ผ͢ΔͨΊʹɺ ɹShachikuDate ͱݺͼ·͢ 9

Slide 10

Slide 10 text

ShachikuDateͷจࣈྻදݱΛಘΔ func shachikuDateDescription (_ !: Date) -> String { let formatter = DateFormatter() formatter.dateFormat = "yyyy೥MM݄dd೔" return formatter.string(from: !) } 10

Slide 11

Slide 11 text

ShachikuDateΛ࢖͍͍ͨ let ! = parseDate("2016-09-28 07:59:58") //"8࣌લͳͷͰɺ shachikuDateDescription(!) //2016೥09݄27೔ #ͱද͍ࣔͨ͠ 11

Slide 12

Slide 12 text

͜Μͳ;͏ʹม׵͢Δʁ extension Date { var shachikuDate: Date { if self.hour < 8 { //8࣌લͳΒ return (self.day - 1) //ࡢ೔ʹ͢Δ } else { return self } } } ※ͪΐͬͱٖࣅίʔυ 12

Slide 13

Slide 13 text

໰୊ᶃ let !1 = parseDate("2016-09-27 08:00:00") let !2 = parseDate("2016-09-28 07:59:58") !1.shachikuDate < !2.shachikuDate ౰વtrueΛظ଴͠·͢ΑͶʁɹͰ΋… 13

Slide 14

Slide 14 text

໰୊ᶃ let !1 = parseDate("2016-09-27 08:00:00") let !2 = parseDate("2016-09-28 07:59:58") !1.shachikuDate < !2.shachikuDate // false" 14

Slide 15

Slide 15 text

໰୊ᶃ ͳͥͳΒ let !1 = parseDate("2016-09-27 08:00:00") let !2 = parseDate("2016-09-28 07:59:58") !1.shachikuDate // "2016-09-27 08:00:00" "มԽͯ͠ͳ͍ !2.shachikuDate // "2016-09-27 07:59:58" "Ұ೔ḪͬͯΔ 15

Slide 16

Slide 16 text

໰୊ᶄ func printHoge(with !: Date) { printFuga(!.shachikuDate) } func printFuga(with !: Date) { print(!.shachikuDate) } let ! = parseDate("2016-09-28 07:59:58") printHoge(with: !) // "2016೥09݄26೔" ࡢ೔(9/27)ͷ೔෇Λظ଴͍ͯ͠Δͷʹɺ Ұࡢ೔(9/26)ʹͳ͍ͬͯΔ… 16

Slide 17

Slide 17 text

໰୊ᶄ func printHoge(with !: Date) { printFuga(!.shachikuDate) } func printFuga(with !: Date) { print(!.shachikuDate) } ɹ Α͘ಡΉͱɺ 1. printHoge(with:) Ͱલ೔ͷDateʹม׵ 2. printHoge(with:) ͔Β printFuga(with:) ΛݺͿ 4 printFuga(with:) Ͱߋʹલ೔ͷDateʹม׵ 17

Slide 18

Slide 18 text

!"#$%!"$% όάʹؾ෇͚Δ ؾ͕͠ͳ͍… %$"!%$#"! 18

Slide 19

Slide 19 text

໰୊ᶅ Ϣʔβʔೖྗ஋ΛɺαʔόʹૹΔ func didReceiveUserInput (year: Int, month: Int, day: Int) { let ! = Date( calendar: Caldendar.default, year: year, month: month, day: day ) API.send(!) } 19

Slide 20

Slide 20 text

!ʮͳ͋ʯ 20

Slide 21

Slide 21 text

!ʮDBʹ 4004೥ͱ͔ ೖͬͯΔΜ͚ͩͲʯ 21

Slide 22

Slide 22 text

!? 22

Slide 23

Slide 23 text

func didReceiveUserInput (year: Int, month: Int, day: Int) { let ! = Date( calendar: Caldendar.default, year: year, month: month, day: day ) API.send(!) } ɹ ! Ͳ͜ʹ໰୊͕…!? 23

Slide 24

Slide 24 text

func didReceiveUserInput (year: Int, month: Int, day: Int) { let ! = Date( calendar: Caldendar.default, //"࣮͸࿨ྐྵઃఆ#ͯͨ͠!!! year: year, //$2016 month: month, day: day ) API.send(!) } ࿨ྐྵઃఆͳͷͰ ! = ฏ੒2016೥ = 1988 + 2016 = ੢ྐྵ4004೥ ͱ͍͏Φν 24

Slide 25

Slide 25 text

ॾѱͷࠜݯ Dateͱ͍͏ܕΛ ࢖͍ճ͍ͯ͠Δ 25

Slide 26

Slide 26 text

Dateܕ͸ศར 26

Slide 27

Slide 27 text

λΠϜκʔϯͷҧ͍΋ ྐྵ๏ͷҧ͍΋ શ෦ٵऩͯ͘͠ΕΔ 27

Slide 28

Slide 28 text

Ͱ΋ ࣌ࠁͷࡉ੍͔͍ޚͬͯ ࠓɺඞཁʁ 28

Slide 29

Slide 29 text

ࠓɺྐྵ๏ͬͯඞཁʁ 29

Slide 30

Slide 30 text

ShachikuDate͕΄͍͠ͷ͸ ೔෇! ͚ͩ 30

Slide 31

Slide 31 text

ͳΒɺ struct YMD { let year: Int let month: Int let day: Int var description: String { return "\(year)೥\(month)݄\(day)೔" } } let ! = YMD(year: 2016, month: 9, day: 28) 31

Slide 32

Slide 32 text

γϯ ϓϧ 32

Slide 33

Slide 33 text

όάͷೖΓࠐΈΑ͏͕ͳ͍ 33

Slide 34

Slide 34 text

!✨ 34

Slide 35

Slide 35 text

ಉ͜͡ͱ͸ ΤϯδχΞϦϯάͷ ༷ʑͳঢ়گͰ ݴ͑ͯɺ 35

Slide 36

Slide 36 text

ྫ1 ☑ จষΛද͍ࣔͨ͠ ☑ Ұఆͷߴ͞Λ௒͑ͨΒεΫϩʔϧ͍ͤͨ͞ ! ͩͬͨΒUITextViewͰ͠ΐ͏ 36

Slide 37

Slide 37 text

݁Ռ1 ! จষྖҬͷϚʔδϯͷ੍ޚͭΒ͍… จষྖҬͷheight͕͏·͘औΕͳ͍… …ਏ͍… 37

Slide 38

Slide 38 text

!NSLayoutManager !NSTextStorage !NSTextContainer !etc... 38

Slide 39

Slide 39 text

UITextViewͷ ಺෦ߏ଄͸ ҙ֎ͱຐڥ 39

Slide 40

Slide 40 text

εΫϩʔϧͰ͖ΔLabel͕ ཉ͍͚ͩ͠ͳΒɺ UITextView͸ ΦʔόʔεϖοΫ 40

Slide 41

Slide 41 text

݁ہ1 ! UILabel Λ UIScrollView ʹೖΕΔ࣮૷Ͱ ͘͢͝γϯϓϧʹղܾͰ͖ͨ… ʢίʔυ1ߦ΋ॻ͔ͣɺ ɹInterfaceBuilderͰ׬݁Ͱ͖ΔϨϕϧʣ 41

Slide 42

Slide 42 text

ྫ2 ! ○○ػೳΛ࢖͍͍ͨͷͰ ͋ͷϥΠϒϥϦೖΕΑ͏ͬͱʂ 42

Slide 43

Slide 43 text

݁Ռ2 ! ͋ͷϥΠϒϥϦͷ××ػೳʢผʹཁΒͳ͍ʣ ͕ ґଘ͢ΔผͷϥΠϒϥϦͷ͍ͤͰ Xcode8ରԠ͕ਐ·ͳ͍… ! Ͱ΋୤ϥΠϒϥϦ͸ ࠓߋແཧ… 43

Slide 44

Slide 44 text

͓Θ͔ΓͩΖ͏͔ ػೳ͕ଟ͍ ʹ ᠘͕ଟ͍ 44

Slide 45

Slide 45 text

େ͕খΛ݉ͶΔͱ ൵͠Έ͕ੜ·ΕΔ 45

Slide 46

Slide 46 text

ͱ͍͏Θ͚Ͱ 46

Slide 47

Slide 47 text

େࣄͳ͜ͱͳͷͰ ΋͏Ұ౓ݴ͍·͢ 47

Slide 48

Slide 48 text

େͰ খΛ ݉ͶΔͳ 48

Slide 49

Slide 49 text

ɹҎ্ɻ 49

Slide 50

Slide 50 text

see also: UNIX఩ֶ - Wikipedia 50