iphone - 使用“保留”对象泄漏

标签 iphone cocoa-touch ios retaincount

我有一个属性与retain属性定义,我正在合成:

@property (nonatomic, retain) UISwitch *mySwitch;

在我的loadView中,我正在这样做:
self.mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(0, 0, 40, 20)];

最后在我的dealloc中,我这样做:
self.mySwitch = nil;

我使用了一个分配后是否泄漏了该对象(mySwitch)?我应该在分配框架时自动释放它吗?

请提出建议。

最佳答案

该行:

self.mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(0, 0, 40, 20)];

实际上,调用会保留两次-一次是alloc的调用,另一次是self.mySwitch的分配的调用(这是您应为retain分配给它的任何值指定的属性。)我被告知的解决方法最好是在上添加对autorelease的调用行,使其:
self.mySwitch = [[[UISwitch alloc] initWithFrame:CGRectMake(0, 0, 40, 20)] autorelease];

关于iphone - 使用“保留”对象泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098549/

相关文章:

ios - 新计算机上的 "Valid signing identity not found"

iphone - IOS View 转换修改框架?

iphone - AudioServicesPlaySystemSound 和主线程

objective-c - uilabel 在添加时显示 "moving"

ios - XCode 版本 6.1 (6A1052d) 更新导致错误 : 'dictionaryWithCapacity' has been explicitly marked unavailable here (Foundation. NSMutableDictionary)

ios - UIDatePicker 背景颜色在第二个 viewDidLoad 上发生变化

iphone - UIPopoverController 中的 UIPIckerView

javascript - 在手持设备上禁用 fancybox

iphone - 开始编辑 TextView 时隐藏图像

iphone - 将Integer设置为除零以外的任何值时为EXC_BAD_ACCESS