Objective-C
なんだかんだ知っておかないとできないことが多いので。それに Swift からも Obj-C の機能利用することがあるし...
Objective-C 言語は、コンパイル時及びリンク時から実行時まで、多くの決定を 遅延 させる
可能な限り決定は 動的に 行われる
従って、Objective-C はコンパイラだけではなく、コンパイル済みのコードの実行のためのランタイムシステムも必要となる
ランタイムシステムは、Objective-C 言語のための OS のように動作する
maxOS のランタイムライブラリについて
Objective-C ランタイムプログラミングガイド
Objective-C プログラミングガイド
Objective-C の歴史シリーズ
概要
macOS, iOS アピを書くときに使う
C言語のスーパーセット
プリミティブ型, シンタックス, フロー制御構文は引き継いでいる
オブジェクトグラフ管理, オブジェクトリテラル?
既存のクラスの拡張
色々方法があるようだ。
Category
対象のソースコードを自分で管理していない場合にも拡張できる
Class extension
対象のソースコードを自分で管理していて、かつ単一ファイル内や Framework 内などに private に保ちたい場合 実際に書き換える
対象のソースコードを自分で管理しているなら書き換えれば良い
KVO, KVC
プロパティ属性
table:プロパティ属性
属性名 意味
readonly setter を作らない
readwrite setter, getter を両方作成する
assign