Help us understand the problem. What is going on with this article?

Swiftはじめて1週間で学んだこと@勉強メモ

はじめに

突然Swiftをやることになり、たった2日でマスターできるiPhoneアプリ開発集中講座のアプリ作成を進めながら、基礎文法とXcodeの使い方を勉強して1週間ほどたったので、この1週間で調べたことを残しておきます...!
何かひとつでも、これから始める人のヒントになればうれしい。

varとlet

  • varが変数
  • letが定数

代表的なデータ型

  • Int 整数を扱うための型
  • Float 単精度の浮動小数を扱うための型
  • Double 倍精度の浮動小数を扱うための型
  • String 文字列を扱うための型、文字列データはダブルクォート”で囲むこと
  • Bool 論理値を扱うための型、値はtruefalseとなる

オプショナル型

通常の変数と異なり空の値(値が無い)状態を保持することができる変数
オプショナル型はnilの代入ができる、非オプショナル型はできない

  • オプショナル型にするとnilが使えるようになる
  • オプショナル型は?や!を使って表現する

アンラップ

オプショナル型を非オプショナル型と同様に扱うには「アンラップ」という処理が必要

  • 強制的アンラップはオプショナル型の変数に最後に"!"をつけて強制的にアンラップ
  • オプショナルバインディングはif文などの条件分岐を使ってオプショナル型の値がnilかどうかで処理を分ける
  • オプショナルチェイニングはオプショナル型の変数の後ろに"?"をつけて、そのあと続けてプロパティにアクセスしたりメソッドを呼び出す

guard文

想定外の状況が発生した場合に、その処理から抜け出すための構文
if文でも同様の処理が書けるが、guard文はスコープから抜ける処理を書かないとエラーになるため、guardが出てくると「必ず処理を抜ける」とわかり、可読性があがる

型推論

swiftでは、変数や定数の宣言時にデータ型の指定が原則として必要だが、宣言と同時に値を代入する場合は型を明示しなくても、代入する値をswift側で判断して変数や定数にデータ型を自動設定してくれる

データ型を明示して変数または定数を宣言する

宣言時点で代入する値が決まっていればswiftの型推論によってデータ型を明言する必要はなかったが、決まっていない場合はデータ型をあらかじめ明言しておく必要がある

print関数で出力する際に文字列とIntを扱う

print 関数でコンソールに出力する際、文字列””の中で\(定数または変数名)とすることで、文字列の中に埋め込むことができる

swiftの条件分岐では条件文の()は省略できる

書いても問題ないけれど、省略するのが一般的

delegate はデザインパターン

  • delegateを使うメリットは、処理を任せる側は実際に処理をするのはどのクラスなのか、どんな処理をするのかということを意識しなくていいこと
  • 違う処理がしたい場合、処理を任されるクラスだけを新しく作ればいい
  • プロトコルや処理を任せる側のクラスはそのまま再利用し、まったく異なる処理を行うことができる
  • デザインパターンを使うことで誰が見てもわかりやすく、使いやすいプログラムを作ることができる

プロトコル

  • デリゲートとほぼ対になって言及されるswiftの機能「プロトコル」
  • プロトコルはクラス・構造体・列挙型の「仕様書」と呼べるもの
  • 問い合わせ先に対して、どのようなプロパティやメソッドを使って問い合わせを行うかという「取り決め」をプロトコルを使って定義する

弱参照・強参照

クラスのインスタンスは何も指定しなければ通常「強参照」と呼ばれる形で代入される

  • ARC (メモリ管理システム) インスタンスのメンバを追跡して、参照が残っているかどうかを見ている
  • weak (弱参照) 参照対象が自身よりも先にメモリが解放されるときに使う
  • unowned (非所有参照) 参照対象が自身と同じかより後にメモリが解放されるときに使う

CocoaPods(ライブラリ管理)

アプリケーションで、外部ライブラリ(Pod)を利用する際に必要な依存性の解決を自動的に行ってくれるソフトウェア

おわりに

自分の記録用です。
シンプルなアプリを4つ作成しながらだったので、たぶん記録できてないものでもっとあります...
まだまだわからないことだらけなので、ここが間違ってる!もっとここを勉強して!などありましたら、ご指摘いただけるとうれしいです。

参考

https://blog.kuromusubi.com/develop/language/swift/20180525-lazy
https://capibara1969.com/421/
https://qiita.com/maiki055/items/b24378a3707bd35a31a8#%E3%82%A2%E3%83%B3%E3%83%A9%E3%83%83%E3%83%97%E3%81%AE%E7%A8%AE%E9%A1%9E
https://scior.hatenablog.com/entry/2018/12/24/132704

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした