-(NSMutableArray *) getPaises { NSMutableArray * paises; paises = [[NSMutableArray alloc] init]; while( get new row ) { Nsstring *aPais = [Nsstring stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)]; [paises addobject:aPais]; } return paises; }
我不会发布aPais,因为如果我这样做,应用程序崩溃.我不知道在使用它之后是否应该释放它,如果是的话,我该怎么做呢?刚释放NSMutableArray就够了?还是要遍历它并释放每个对象?
如果我不需要释放它,谁负责释放?
解决方法 正如epatel所说,你不需要释放那个特定的字符串.如果你想要更积极主动,你可以这样做:-(NSMutableArray *) getPaises { NSMutableArray * paises; paises = [[[NSMutableArray alloc] init] autorelease]; while( get new row ) { Nsstring *aPais = [[Nsstring alloc] initWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)]; [paises addobject:aPais]; [aPais release]; } return paises;}
综上所述:
> [[Nsstring alloc] initWith …] – >你必须释放或自动释放.
> [Nsstring stringWith …] – >无需释放.
– 编辑:添加了自动发送,当你返回它.当你返回一个对象时,如果你已经分配了& init’d,那么总是自动释放它.
总结以上是内存溢出为你收集整理的何时在iPhone中发布NSString全部内容,希望文章能够帮你解决何时在iPhone中发布NSString所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)