我正在尝试从函数中的数据库中获取NSString值,但是我不断得到分析器警告。继承我的代码......
- (NSString*)getCategoryDesc:(int)pintCid {
NSString *ret;
ret = value from my db ...
return [ret autorelease];
}
它不喜欢
return ret;
return [ret retain];
答案 0 :(得分:1)
关键点(你没有向我们展示)是:“我的数据库中的价值”是做什么的?
如果它正在做类似的事情:
ret = [[NSString alloc] initWithString:@"something"];
然后你负责释放对象,但是如果它正在做类似
的事情ret = [NSString stringWithString:@"something"];
你不需要释放它(事实上,你绝对不能)。
因为您的方法名为“get *”(而不是“create *”),所以您需要返回调用者不拥有的对象(通常,这意味着自动释放的对象)。