swiftビギナーズ倶楽部 vol.2
TRANSCRIPT
はじめてのIOSアプリ開発Swiftビギナーズ倶楽部 第2回
• アプリケーションエンジニア(LAMP / Java / Oracle)• WordPressコミュニティへの参加するのが好き• JavaScriptが好き / Railsも触り始めた^^v
• スマホアプリ開発初心者(Objective-C、Swift全く未経験)
Self-Intoroduction
• 初めてアプリ作ったよ♪
• Interface Builderでオブジェクト作成
• 新規作成時に生成されるイベント
• Optional value(オプショナル値)
Today's Agenda
• override(オーバーライド)
5秒でヒット!初めてのiOSアプリ
Let's Demo!
ドットインストール 「iOSでストップウォッチを作ろう (全9回)」
を参考に機能拡張してみました。
PREMIUM
ビギナーの歩み方
サンプルコードを少しずつ変更して、機能を追加していく。
疑問を解明しよう!
動いたは動いたが・・・不思議がいっぱい!!
オブジェクトの作り方
Interface Builderで作ると
@IBOutlet weak var timerLabel: UILabel!
・「IB」は、Interface Builderのこと。 オブジェクトと、プログラムの変数をつなぎ合わせる。
・「weak」は、弱い参照の意味で、所有権がない??? とりあえず、IBOutlet な項目は、基本weak がよいみたい。
Interface Builderで作ると
@IBAction func startTimer(sender: AnyObject) { }
・ユーザーが行う操作に、メソッドをつなぎ合わせる。
オブジェクトの作り方
// ユーザーの操作による、処理を実装する
・ユーザーの操作によって、実行される。
まだまだ、疑問がいっぱい
@IBOutlet weak var timerLabel: UILabel!
var startTime: NSTimeInterval? = nil
気になってしょうがないの、、、これ!
これも!!
なんてググれば いいんだー???
空文字(ブランク)と、「nil」は違う状態。
Optional value(オプショナル値)
・Swfitでは、通常の変数に「nil」は代入できない。
・Swiftで実行時に「nil」が代入可能なのは、 Optional Value を使っている場合のみ。
・「nil」は、有効なデータが格納されていない、 値が代入されていない状態。
補足
Optional value(オプショナル値)
・「!」を付けた場合:変数の中身が「nil」の場合に、 実行時にエラーになる。
@IBOutlet weak var timerLabel: UILabel!
var startTime: NSTimeInterval? = nil
・「?」を付けた場合:変数の中身が「nil」の場合でも、 エラーにはならない。
なぜ、こんな機能が?
・開発時のバグは、「nil」の扱いを明確せず、適切な 実装をしないことによってバグが発生することがある。
・「optional value」の機能によって、開発者がコードを 実行する前に、「nil」の扱いを意識することによって、 安全性の高いプログラムが実装できる。
Swiftでは
まだ、疑問あるよ!
override func viewDidLoad() { super.viewDidLoad() }
override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() }
・アプリ起動後に、1度だけ実行される。
・メモリが不足な状態に実行される。
プログラム実行時に、自動的に起こるイベントは、 この他にも、たくさんあります。
補足
もう、一個疑問!!
override func viewDidLoad() { super.viewDidLoad() }
・親クラスのメソッドの替わり(上書きして)に、自分のメソッドを実行できる。
override(オーバーライド)って何?
親クラスって何???
class ViewController: UIViewController { @IBOutlet weak var timerLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() } }
このクラスのこと
「super」は、親メソッドを指す。 親のviewDidLoadメソッドを実行。
・「viewDidLoad」メソッドは、新規作成後に最初から書かれている。 ・この処理がないと、初期設定が行えなくなってしまうので特別。
わからないー! だれか教えてー♪
Swiftビギナーズ倶楽部は
わからないことは周りの人に聞いて、気軽に教え合って、 皆の疑問を1つでも解決して、楽しんで開発していきましょう。
Let's study together!
Thank you :)