LoginSignup
4
4

More than 5 years have passed since last update.

[Swift] iOS開発初心者の疑問をまとめた

Last updated at Posted at 2018-10-19

「?」や「!」マークについて

プロジェクトのコードをみていて度々この謎のマークが出てくることに疑問を抱いていました。

まずSwiftには「オプショナル型「と「非オプショナル型」というものがあるらしく、違いは下記の通りです。
・オプショナル型はnilの代入を許容することができる
・非オプショナル型はnilの代入を許容することができない

オプショナル型の変数には最後に「?」か「!」をつけます。

// 例えばStringにnilを代入しようとするとエラーが出ます
$ var a: String = nil
# => error: nil cannot initialize specified type 'String'

// 「?」をつければエラーは出ません
$ var a: String? = nil

// Optionalとついています
$ var a: String? = "hoge"
$ print(a)
# => Optional("hoge")

// 宣言時はnilの状態
$ var a: String?
$ print(a)
# => nil

classについて

こちらはxcodeで新規アプリを作成した際のViewControllerの中身です。

// UIViewController」を継承している
class ViewController: UIViewController {
    // viewDidLoadの上書き
    override func viewDidLoad() {
        // スーパクラスのviewDidLoadを呼び出す
        super.viewDidLoad()
    }
}

ここではまず「ViewController」というclassを作成しており、「UIViewController」を継承しています。
そして「viewDidLoad」という関数をoverride(上書き)している。

super.viewDidLoad() はスーパークラスのviewDidLoadを呼び出している。

この辺りは他の言語と似たようなものですね。

AppDelegateってなんだ?

Xcoodeプロジェクトを開いて目にするのがAppDelegate.swiftというファイル。
アプリ全体のライフタイムイベントを管理する。

中には6つの関数があり、それぞれ呼び出されるタイミングが異なります。

application
// アプリを起動してストーリーボードが読み込まれた際に動く。

applicationWillResignActive
//アプリがアクティブ状態から非アクティブ状態に移行しようとしているときに動く

applicationDidEnterBackground
//アプリの終了時に動く

applicationWillEnterForeground
//アプリの起動時に動く

applicationDidBecomeActive

applicationWillTerminate
//フリックでのアプリ終了時に動く```
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4