这是我的代码的一部分:
NSMutableArray oldWordsArray;
newWordsArray= [self getNewWordArray];
-(NSMutableArray *) getOldWordArray{
NSString *user_id = (NSString*)[tool readObkect:@"user_id"];
NSMutableArray oldWords = [[NSMutableArray alloc]init];
oldWords = [database getOldWord:user_id];
NSLog(@"从所有词库中得到新单词");
return oldWords;
}`
那么:我应该如何发布变量oldWordsArray
和oldWords
,非常感谢!
答案 0 :(得分:1)
我猜,你没有使用ARC。这个:
-(NSMutableArray *) getOldWordArray{
NSString *user_id = (NSString*)[tool readObkect:@"user_id"];
NSMutableArray oldWords = [[NSMutableArray alloc]init];
oldWords = [database getOldWord:user_id];
NSLog(@"从所有词库中得到新单词");
return oldWords;
}
可以翻译成:
-(NSArray *) getOldWordArray{
NSString *user_id = (NSString*)[tool readObkect:@"user_id"];
NSArray oldWords = [database getOldWord:user_id];
NSLog(@"从所有词库中得到新单词");
return oldWords;
}
然后:
- (NSArray *)oldWordArray
{
NSString *user_id = (NSString*)[tool readObkect:@"user_id"];
return [database getOldWord:user_id];
}
我不确定database
是什么,但它应该返回一个autoreleased
对象,所以在这种情况下你不必自己release
。您也应该使用get
中的前缀getOldWord
。您也可以使用NSArray
代替NSMutableArray
。
答案 1 :(得分:0)
这里有很多讨论 第一件事你应该检查如果启用了ARC,那么你不担心发布它将由ARC本身完成
如果没有,那么使用像这样的代码
-(NSMutableArray *) getOldWordArray{
NSString *user_id = (NSString*)[tool readObkect:@"user_id"];
NSMutableArray oldWords = [[[NSMutableArray alloc]init]autorelease];
oldWords = [database getOldWord:user_id];
NSLog(@"从所有词库中得到新单词");
return oldWords ;
}
或者您可以使用
-(NSMutableArray *) getOldWordArray{
NSString *user_id = (NSString*)[tool readObkect:@"user_id"];
NSLog(@"从所有词库中得到新单词");
return [database getOldWord:user_id];
}