【发布时间】:2012-03-29 14:10:58
【问题描述】:
这是我的方法之一。
- (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];
}
在我的方法中,我对作为参数的对象调用了保留。所以我拥有该对象并增加了保留计数。所以我的问题是,如何在
之后减少保留计数[_dataProvider startGettingSearchResultsByKeyword:self.searchKeyword
searchOptions:_searchOptions
searchGroupsInResult:_searchGroupsInResult
pageNo:_pageNo
delegate:self];
打电话。 ([keyword release] 或 [_searchKeyword release])??
在我的头文件中,我将_searchOptions 声明为私有实例,并将_searchKeyword 声明为readonly 属性。在我的实现文件中,我在dealloc 中发布了这两个实例。
我运行了分析工具,但它没有将这件事显示为问题。但我对此表示怀疑。
所以,请告诉我处理这件事的必要方法。
我正在开发 XCode4 和 iOS 4.3。
谢谢。
【问题讨论】:
-
你用
[object_address release]释放一个对象。
标签: objective-c ios memory-management xcode4 memory-leaks