他に保持されていない場合は、クラスのメソッドを呼び出しautorelease
て、インスタンスを自動解放できます。GetEntityID
クラスのインスタンス化はDB接続クラスのメソッド内で行われるため、インスタンスに返されるオブジェクトはそれを「所有」しません。つまり、DB接続クラスです。この時点で、慣例に従って、インスタンスをメモリ管理する必要があります。
名前が「alloc」または「new」で始まるメソッドまたは「copy」を含むメソッド(alloc、newObject、mutableCopyなど)を使用してオブジェクトを作成する場合、またはオブジェクトに保持メッセージを送信する場合は、オブジェクトの所有権を取得します。リリースまたは自動リリースを使用して、所有するオブジェクトの所有権を放棄するのはユーザーの責任です。オブジェクトを受け取ったときは、それを解放してはなりません。
メソッドを送信するオブジェクトがオブジェクトGetEntityID
を保持したい場合、たとえば、インスタンス変数として使用する場合は、返されたオブジェクトを保持して、現在のイベントの終了時に割り当てが解除されないようにすることができます。ローカルでのみ使用されており、現在のイベントの後で保持する必要がない場合、クラスは何もする必要はありません。現在のイベントの終了時に自動解放プールによって解放されます。
この記事では、自動解放プールについて詳しく説明します。