マガジンのカバー画像

Swiftでいこう!

584
楽しくプログラミング!Swiftはなんだか楽しい"ことば"です。
運営しているクリエイター

2021年6月の記事一覧

Swiftでプログラミング-Nested Types

多くの場合、列挙体は特定のクラスまたは構造体の機能をサポートするために作成されます。 同様に、より複雑な型をコードの内側で使用することを目的にユーティリティクラスと構造体を定義すると便利な場合があります。 これを実現するために、Swiftではネストされた型を定義できます。これにより、サポートする列挙体、クラス、および構造体を、それらがサポートする型の定義を内側に書くことが出来ます。 別の型の内にネストするには、サポートする型の外側の中括弧内にその定義を記述します。 型は、必

Swiftでプログラミング - Concurrency

Swiftには、構造化された方法で非同期コードと並列コードを記述するためのサポートが組み込まれています。非同期コードは、一度に1つのプログラムしか実行されませんが、後で一時停止および再開できます。プログラムでコードを一時停止および再開すると、UIの更新などの短期的な操作を継続しながら、ネットワーク経由でのデータのフェッチやファイルの解析などの長時間実行される操作を継続できます。並列コードとは、複数のコードを同時に実行することを意味します。たとえば、4コアプロセッサを搭載したコ

SwiftUIでいこう! - アニメーション

画面中で動きのあるアニメーションを作ってみます。参考サイトです。 【初心者向けSwiftUI】アニメーションの基本を学ぶ!!この動画で基本は十分 カピ通信さんの解説 参考サイトの動画では円の上を車が走るという設定でアニメーションを作ってあります。始点と終点を決めることが重要ということです。ざっくりとした構造ですが、 構造体を重ねて使える"ZStack"を使いCircle()を2つ作ります。その1つは道路に見立て、もう1つは道路の真ん中の線を表現します。まず、1つ目のC

Swiftでプログラミング- Error Handling

エラー処理とは、プログラム内のエラー状態に対応し、そこから回復するプロセスです。Swiftは、実行時に回復可能なエラーを投げたり、キャッチしたり、次に伝えたり、操作したりするための最高の機能を提供します。 いくつかの操作は、常に実行を完了したり、有用な出力が保証されていません。Optionalは、値がないことを表現するために使用され、失敗の原因をわかりやすくします。 例えば、ディスク上のファイルからデータを読み込んで処理するというタスクを考えてみましょう。ファイルが指定さ

Swiftでプログラミング- Optional Chaining

Optional Chainingは、プロパティ、メソッド、および添え字を呼び出す過程でoptionalが nil であるかを判定します。optionalに値が含まれている場合は、プロパティ、メソッド、または添え字の呼び出しが成功し、optionalが nil の場合は、プロパティ、メソッド、または添え字によって nil を返します。複数の条件を連鎖させることができ、条件のいずれかのリンクが nil の場合、そこでnilを返します。。 Swiftでのオプションの連鎖は、Ob

Swiftでプログラミング- Deinitialization

デイニシャライザは、クラスのインスタンスが解放される直前に呼び出されます。初期化を init キーワードで書くのと同じように、deinit キーワードを使います。デイニシャライザはクラスでのみ使用できます。 How Deinitialization Works デイニシャライザの使い方。 Swiftは、メモリを解放するために、不要になったインスタンスを自動的にメモリを解放します。Swiftは、自動参照カウント(ARC)を通じてインスタンスのメモリ管理を処理します。一般的には

Swiftでプログラミング- Initialization 3

Failable Initializers 失敗のあるイニシャライザ 初期化に失敗する可能性のあるクラス、構造体、列挙を定義しておくと便利な場合があります。この失敗は、初期化パラメータの値が無効な場合や、必要な外部リソースが存在しない場合など、初期化が成功しない条件によって引き起こされます。 失敗する可能性のある初期化条件に対処するには、クラス、構造体、または列挙の定義の一部として、1 つまたは複数の失敗可能な初期化子を定義します。失敗可能なイニシャライザを記述するには、

Swiftでプログラミング- Initialization 2

Class Inheritance and Initialization クラスがそのスーパークラスから継承するプロパティ、クラスのすべての保存プロパティは、初期化、初期値を割り当てられなければなりません。 Swiftは、すべての継承した保存プロパティが初期値を受け取ることを確実にするために、クラスタイプのための2種類のイニシャライザ、designated initializersとconvenience initializersを定義します。 Designated In

Swiftでプログラミング- Initialization 1

初期化とは、クラスや構造体、列挙体などのインスタンスを使用するために準備するプロセスです。このプロセスでは、インスタンスに保存されている各プロパティに初期値を設定し、新しいインスタンスを使用できるようにするために必要なその他の設定や初期化を行います。 新しいインスタンスを作るためのメソッドです。イニシャライザ呼ばれ、定義しているプロパティを初期化をします。Objective-Cのイニシャライザとは異なり、Swiftのイニシャライザは値を返しません。その主な役割は、最初に使用

Swiftでプログラミング。- Inheritance 継承

クラスは、他のクラスからメソッド、プロパティ、その他の特性を継承することができます。あるクラスが他のクラスを継承すると、継承するクラスはサブクラスとして知られ、継承するクラスはスーパークラスとして知られます。継承は、Swiftで違うクラスと区別するための基本的な構文です。 Swiftのクラスは、そのスーパークラスに属するメソッド、プロパティ、およびサブスクリプトを呼び出してアクセスすることができ、それらのメソッド、プロパティ、およびサブスクリプトの独自のオーバーライドバージ

Swiftでプログラミング。-Subscripts

クラス、構造体、および列挙型では、コレクション、リスト、またはシーケンスのメンバ要素にアクセスするためのショートカットである添え字を定義できます。添え字を使用すると、設定および取得のための個別のメソッドを必要とせずに、インデックスによって値を設定および取得できます。例えば、配列の要素には someArray[index] としてアクセスし、Dictionary インスタンスの要素には someDictionary[key] としてアクセスします。 1 つの型に対して複数の添

Swiftでプログラミング。-Methods

メソッドは、特定の型に関連付けられた機能です。クラス、構造体、および列挙体はすべて、インスタンスメソッドを定義できます。インスタンスメソッドは、特定の型のインスタンスを操作するための特定のタスクや機能をカプセル化します。クラス、構造体、および列挙型は、型自体に関連する型メソッドを定義することもできます。型メソッドは、Objective-Cのクラスメソッドに似ています。 構造体や列挙体がSwiftでメソッドを定義できるのは、CやObjective-Cとの大きな違いです。Obj

Swiftでプログラミング。-Properties 2

Property Wrappers Property Wrapperは、プロパティの保存方法を管理するコードと、プロパティを定義するコードとを分けて考えます。例えば、スレッド・セーフティ・チェックを行うプロパティや、基礎となるデータをデータベースに保存するプロパティがある場合、そのつどコードをすべてのプロパティに記述する必要があります。プロパティ・ラッパーを使用すると、ラッパーの定義時に管理コードを一度だけ記述し、その管理コードを複数のプロパティに適用して再利用することができ