
………………………………………….. ………………………………………….
这是我第一次开发应用程序时,我对于该怎么做感到困惑.任何帮助,将不胜感激.
解决方法 目标c中的对象具有保留计数.如果当对象超出范围时(当您停止使用它时)此保留计数大于0,则它会泄漏.以下事项会增加保留计数
> [[alloc] init]
>新的
>复制
> [保留]
>将对象添加到数组中
>将对象添加为子对象(例如视图)
>可能还有更多,但您似乎没有在代码中使用任何其他内容
以下减少了保留计数
> [发布]
>从数组中删除对象
>如果你释放一个数组,它的所有对象都会被释放
您应该检查代码并确保数组的每个保留或添加都与相应的版本匹配. (您可以在dealloc方法中释放成员变量).
编辑:杰里米提出了一个有效的观点,我的答案没有
Once you add an object to an array,it takes ownership and will release the object when it is done with it. All you need to do is make sure you release anything you own according to the memory management rules
还有自动释放对象,看看这个例子;
-(init){ ... stagePickerArray = [[NSMutableArray alloc] init]; for (int i = 0; i < 3; i++) { //this string is autoreleased,you don't have call release on it. //methods with the format [CLASS CLASSwithsomething] tend to be autorelease Nsstring *s = [Nsstring stringWithFormat:@"%d",i); [stagePickerArray addobject:s]; } ... } 我认为你唯一缺少的就是在你的dealloc方法中调用release
-(voID) dealloc{ [stagepickerarray release]; //Do this for each of your arrays [super dealloc];} 总结 以上是内存溢出为你收集整理的objective-c – 如何修复内存泄漏?全部内容,希望文章能够帮你解决objective-c – 如何修复内存泄漏?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)