マガジンのカバー画像

プログラミング

677
プログラミングを始めてみたい!というときに何か役立てばいいな。
運営しているクリエイター

2021年7月の記事一覧

Swiftでプログラミング-Automatic Reference Counting

Swiftでプログラミング-Automatic Reference Counting

Swiftは、自動参照カウント(ARC)を使用して、アプリのメモリ使用量を追跡および管理します。 ほとんどの場合、これはSwiftでメモリ管理が「正しく機能する」ことを意味し、メモリ管理について自分で考える必要はありません。 ARCは、クラスインスタンスが不要になると、クラスインスタンスが使用していたメモリを自動的に解放します。

ただし、場合によっては、ARCでメモリを管理するために、コードの各

もっとみる
SWiftUIでいこう! - Timer.publish処理

SWiftUIでいこう! - Timer.publish処理

参考サイトを見ながらコードを書いて行きます。簡単にするためで見た目の部分は省いています。

大事なタイマーの部分です。

let timer = Timer.publish(every: 1.0, on: .main, in: .common).autoconnect()

このペアになるのが、

.onReceive()

となります。そして、今現在の年月日、時刻を取得します。

@Stat

もっとみる
Swiftでプログラミング-Generics 3

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

Generic Where Clauses
型制約を使用すると、ジェネリック関数、添え字、または型に関連付けられた型パラメーターの要件を定義できます。

associated typeの要件定義をして便利に使うことが出来ます。これを使うために、ジェネリックwhere句を定義します。ジェネリックwhere句を使用するにははassociated typeを定義して特定のプロトコルに準拠、または特定の型

もっとみる
バージョン管理 Gitを理解しよ - 試して遊ぶ。

バージョン管理 Gitを理解しよ - 試して遊ぶ。

GitHubでたくさんのコードが管理してあります。このコードを簡単に試すことができるのでちょっとやってみましょう。わかりすく解説してある動画を見ながら自分なりにやり易い方法でやってみます。GitHubの以下のページを利用させてもらいます。

GoogleのColabで簡単に試すことが出来ます。動画ではGoogleDriveを使って実行していますが、もっと簡単にColab自体のファイル管理のシステム

もっとみる
Swiftでプログラミング-Generics 2

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

Type Constraints
swapTwoValues(_:_ :)関数と Stack typeは、どの型でも機能します。ただし、ジェネリック関数やジェネリック型で使用できる型に特定の型制約を適用すると便利な場合があります。型制約は、型パラメーターが特定のクラスから継承するか、特定のプロトコルまたはprotocol compositionに準拠する必要があります。

たとえば、Swiftの辞

もっとみる
Swiftでプログラミング-Generics 1

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

ジェネリックコードを使用すると、定義した要件に応じて、任意の型で機能する柔軟で再利用可能な関数と型を記述できます。 重複を避け、その意図を明確にしながら抽象的な方法で表現するコードを書くことができます。

ジェネリックはSwiftの最も強力な機能の1つであり、Swift標準ライブラリの多くはジェネリックコードで構築されています。 たとえば、Swiftの配列型と辞書型はどちらもジェネリックコレクシ

もっとみる
Swiftでプログラミング-Protocols 3

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

Adding Protocol Conformance with an Extension 拡張機能を使用したプロトコル準拠の追加
既存の型にアクセスできない場合でも、既存の型を拡張して新しいプロトコルを採用し、準拠させることができます。 拡張機能は、既存の型に新しいプロパティ、メソッド、および添え字を追加し、プロトコルが必要とする要件を追加できます。

今あるインスタンスの型は、拡張されたイ

もっとみる
Swiftでプログラミング-Protocols 2

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

Protocols as Types
プロトコル自体は実際には機能を実装していません。 それでも、コードではプロトコルを本格的な型として使用できます。 プロトコルを型として使用することは、"existential type"と呼ばれることもあります。これは、「"T"がプロトコルに準拠するような型"T"が存在する」というフレーズに由来します。

プロトコルは、次のような他のタイプが許可されている多く

もっとみる
SwiftUIでいこう! - Timer処理まとめ。

SwiftUIでいこう! - Timer処理まとめ。

タイマーを作るときの作り方をまとめ。簡単にXcodeのplaygroundで実行してみます。

import Foundationvar count = 0Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in count += 1 print(count)}

これで、コンソールに1,2,3,・・・とカウ

もっとみる
Swiftでプログラミング-Protocols 1

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

プロトコルは、特定のタスクまたは機能の一部に適したメソッド、プロパティ、およびその他の要件の青写真を定義します。 次に、プロトコルをクラス、構造、または列挙型で採用して、これらの要件の実際の実装を提供できます。 プロトコルの要件を満たすすべての型は、そのプロトコルに準拠していると言われます。

適合型が実装する必要のある要件を指定することに加えて、プロトコルを拡張して、これらの要件の一部を実装した

もっとみる
Swiftでプログラミング-Extensions

Swiftでプログラミング-Extensions

extensionは、既存のクラス、構造、列挙型、またはプロトコルタイプに新しい機能を追加します。 これには、元のソースコードにアクセスできない型を拡張する機能があります(遡及モデリングと呼ばれます)。extensionは、Objective-Cのカテゴリに似ています。 (Objective-Cカテゴリとは異なり、Swiftのextensionには名前がありません。)

Swiftのextensi

もっとみる