RandomThoughts

RandomThoughts

ObjectiveC

Contents:
  1. リンク等
  2. C++ interop
  3. 復習記録
  4. Effective Objective-C
  5. 詳解 Objective-C 2.0 第3版
  6. メンバ変数はimplementationだけに定義出来る

Macより。Swift

リンク等

iOS開発に入門する - なーんだ、ただの水たまりじゃないか にも書いたが、

C++ interop

コンストラクタについて

復習記録

2022-05にもう一度復習する事になったのでメモを書いていく。

From C++ to Objective-CProgramming with Objective-Cを読んでいく記録。 前者をpdf、後者を公式webと呼ぶ事にする。

pdfの4.5のClass categoriesは記述がいまいちなので公式webを読む方が良い。4章くらいまで来たら公式webを読む方が良い気もする。

pdfの5.1.6のファクトリメソッドは何が言いたいのか分からないので公式webを読む方が良い。

6章、shared_ptrはSTLに入ってなくてboostにしか無いとか書いてあるが、何年前の情報だよ…とrevision history見たら2009年って書いてある。古いなぁ、このpdf。

なんかメモリマネージメント周辺はいまいちな気がするので、この辺からは本でも読むかなぁ。 物色して以下をポチる。

Effective Objective-C

amazon: Effective Objective-C 2.0: 52 Specific Ways to Improve Your iOS and OS X Programs

日本語版の方がセールでやすかったのだが、どうも訳が好きになれないので英語版で。

とりあえず5章のMemory Managementだけ読む。

詳解 Objective-C 2.0 第3版

言語のリファレンスっぽいの無いかなぁ、と探して、以下を見つける。

読んでみると思っていたほどリファレンスではなく普通の言語入門書みたいな体裁だが、それなりに各項目が詳しいので持っておいて損は無い気はする。 レビューの印象とは結構違う本だな。

メンバ変数はimplementationだけに定義出来る

古いバージョンではimplementationに定義したメンバ変数は実はグローバル扱いだったらしいが、

objective c - Class variable defined at @implementation rather than @interface? - Stack Overflow

詳解 Objective-C 2.0 第3版の4章に、「実装部でのインスタンス変数定義」という項目でXCode 4.2以降では出来ると書いてあるし、新しいドキュメントでも

Encapsulating Data

で、「You Can Define Instance Variables without Properties」の所に定義出来ると書いてある。