これは私の方法の1つです。保持されたオブジェクトのメモリを解放する方法
- (void)getSearchResultsByKeyword:(NSString *)keyword
searchOptions:(NSArray *)searchOptions
searchGroupsInResult:(NSArray *)searchGroupsInResult
{
_searchKeyword = [keyword retain];
_searchOptions = [searchOptions retain];
_searchGroupsInResult = [searchGroupsInResult retain];
[_searchResultsGroups removeAllObjects];
[_searchResultsGroupsIndexToNameMap removeAllObjects];
_pageNo = 1;
[[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:SearchResultsRetrievingStartLodingNotification
object:self];
[_dataProvider startGettingSearchResultsByKeyword:self.searchKeyword
searchOptions:_searchOptions
searchGroupsInResult:_searchGroupsInResult
pageNo:_pageNo
delegate:self];
}
私のメソッドでは、パラメータであるオブジェクトに対してretainを呼び出しました。だから、私はオブジェクトを所有し、保持カウントを増加させました。だから私の問題は、どのようにして後に保持カウントを減らすのですか?
[_dataProvider startGettingSearchResultsByKeyword:self.searchKeyword
searchOptions:_searchOptions
searchGroupsInResult:_searchGroupsInResult
pageNo:_pageNo
delegate:self];
コールです。 ([keyword release]
または[_searchKeyword release]
)?
私のヘッダファイルで私は_searchOptions
をプライベートインスタンスとして宣言し、_searchKeyword
をreadonly
というプロパティとして宣言しました。私の実装ファイルでは、両方のインスタンスをdealloc
にリリースしました。
私はAnalyzeツールを実行しましたが、この問題は問題として表示されませんでした。しかし、私はそれに疑問を持っています。
だから、私はこのことに取り組むために必要な方法を教えてください。
私はXCode4とiOS 4.3で作業しています。
ありがとうございました。
オブジェクトを「[object_address release]」でリリースします。 –