PHP Objective-C 初心者のための読書メモ (1)
基本構文:
グローバル変数に static が定義されている場合、ローカル スコープに対応してそのスコープが変更されます。 extern は php の global に似ています。
構造体 struct は多次元 kv 配列を定義し、列挙型 enum はデータ範囲を検出します。どちらも typedef を通じてカスタム型をカプセル化できます。
* はポインター値を表し、& はアドレス操作です (PHP での参照渡しは異なる意味を持ちます)。オブジェクト NSString *foo=[NSString stringWithString:"example"] をインスタンス化すると、そのオブジェクトがポインタでもあることがわかります。ポインタがアドレスを取得した後は、そのアドレスを操作を通じて操作できます。
* が付いた変数はヒープに格納され、それ以外の場合はスタックに格納されます。
オブジェクト:
クラス内のメソッドは、通常の意味で、メソッドの呼び出しを oc でのメッセージの送信とも呼びます。
オブジェクト メソッド init は、(PHP のコンストラクター構成に関連して) 関数を初期化するために使用されます。クラスメソッドは静的メソッドです
プライベートメソッドは実装ファイルに配置されます。メソッドを呼び出す前に、コンパイル中に
@sythesize によって必要なセッターメソッドとゲッターメソッドの
プロパティが生成されます。その機能には、setter/getter、readwrite/readonly、assign/retain/copy、nonatomic が含まれます。
非線形安全性 nonatomic はスレッド ロックを使用せず、パフォーマンスはわずかに向上します。 NS オブジェクト
に作用するコンテンツ コピー。 メモリ管理:
は、同様の [Foo alloc] init..] と CreateFoo( を使用して、alloc、copy、create で呼び出します) ) カウントを保持します。 Add 1
自動解放により、メモリはループ終了後に自動的に解放されますが、すぐに解放する必要はありません。[Foo release] フォームを使用するか、自動解放を作成する必要があります。プール NSAutoreleasePool を作成し、ループ本体 (ドレインまたはリリース) の最後で解放する)、ネストされたリリース プールは最も内側の部分で最初に解放されます。
init は PHP の構築メソッド __construct に似ており、dealloc も似ています。デストラクターメソッド __destruct
oc に nil オブジェクトがメソッドを呼び出すことを許可します。結果は実行されないため、メンバー変数を解放した後、ポインターを nil に設定します。そうしないと、指すメモリーアドレスが存在しません (ダングリングポインター)。 )
委任モードでオブジェクトを相互に埋め込むとメモリ リークが発生します。このとき、デリゲート変数を代入型の弱参照に設定する必要があります。
の参照型。強参照は、ポインタがメモリ内に保持され、再利用されないことを示します。弱参照は、nib ファイル内のオブジェクトが外部から参照されていない場合、その逆の
です。収集されるため、所有者オブジェクトに接続された強参照の IBOutlet を作成します。