- Objective-Cの基本的なルートクラスで、Swiftでも使用される。
- 他のクラスが継承することで、多くのメソッドやプロパティを利用可能。
- メモリの管理
- オブジェクトの等価性の比較
- クラス情報の取得
- メソッドの動的な呼び出し
- ObjectiveーCのプロトコルに準拠しており、相互運用性が向上する。
- ObjectiveーC特定の機能やAPIを利用する必要がある場合に有効。
業界未経験からiOSエンジニアを目指す自分の、学びや苦労を書いていきます! →2023年7月、SES企業でモバイルアプリエンジニアに転職! 現在業務ではSwiftUIとflutterを扱っております!
2023年6月2日金曜日
NSObjectとは
AnyObjectとは
- Swiftの型システムにおける、プロトコルの一つ。
- 参照型であるクラスのインスタンスを表すための型。
- 参照型(class):参照を介して共有
- 値型(struct, enum):値そのものをコピーして扱う。
- クラスのインスタンスをAnyObject型の変数やプロパティに代入できる。
- どのクラスのインスタンスでも受け入れられる。
- 値型には使用できない。
- AnyObject型の変数やプロパティには任意のクラスのインスタンスを代入できるが、メソッドの呼び出しなど、クラスのインスタンス特有の操作はできない。
weak 修飾子について
プロパティにweak修飾子をつける理由
- 循環参照(retain cycle)を避けるため
- 循環参照とは?
- メモリリークの一種でオブジェクト間の相互参照によって発生。
- メモリリーク(Memory Leak)とは?
- プログラムやアプリにおけるメモリの不適切な使用状態。
- 不要なメモリの確保や解放漏れにより、メモリ使用量が増加し続ける状態。
- 2つ以上のオブジェクトがお互いに強参照(strong reference)を持ち、相互に解放されなくなる状態を指す。
- 強参照とは?
- オブジェクトが他のオブジェクトを所有することを意味する。
- 参照カウントが増加し、オブジェクトが解放されない限り、メモリ上に保持され続ける。
- 強参照がデフォルト。
- 循環参照が発生すると?
- オブジェクトが互いに解放されなくなり、メモリの解放が行われない。
- アプリのメモリ使用量が増加し続け、最終的にメモリリークが発生。
- メモリリークが継続すると?
- アプリのパフォーマンス低下やクラッシュの原因となる。
- 循環参照は相互に強参照を持つ場合に発生する。
- 弱参照(weak reference)とは?
- 参照カウントを増加させず、参照先オブジェクトが解放されると、自動的にnilになり、循環参照を解消するのに役立つ。
登録:
投稿 (Atom)
flutterについて、学んだことなど
Swiftについて学んできたため、つい比較してしまいがちです。 SwiftUIと比較して、書いてみました。 似ているようで似ていない flutterには、SwiftUIにおける「View」という概念が、「Widget」と呼ばれるものになる SwiftUIのようにWidgetの中に...
-
ブログ投稿のきっかけ! 業界未経験でiOSエンジニアを目指す中で、学んだことや苦労したことを皆さんと共有できたら・・・という思いから始めてみました!アプリ作成に関することから何でも記事にしていこうと思います! 同じくiOSエンジニアを目指す方々と情報の共有や、相談などもできた...
-
MVPとは? 画面の描画処理とプレゼンテーションロジックとを分離するアーキテクチャ Model: 純粋なドメインロジックやそのデータを持つ(MVCと同じ) View: ユ ーザー操作の受け付けと、画面表示を担当する Presenter: View と Model...
-
さて、2023年7月にモバイルアプリエンジニアに転職いたしましたが、はや3ヶ月・・・あっという間ですね 入社から現在までの経過をざっくり記しておきたいと思います! 7月 入社日は、手続きやPCセッティング 翌日より、週3日出社、週2リモートでアプリ開発研修開始 研修では、仕様書...