OC手动管理内存时出现程序崩溃

本文总结了在Objective-C中手动管理内存时,由于未正确使用setter方法导致程序崩溃的问题。当实例变量定义为`retain`模式时,初始化方法中应使用`self._name`而非直接赋值,以确保引用计数正确增加。否则,如在其他地方释放对象后,该对象可能被意外使用,引起程序崩溃。
摘要由CSDN通过智能技术生成

今天写程序时程序崩溃了,调试了很久才找到了问题所在,一下是对这次问题的总结,希望对跟我这样的新手有所帮助。如下:


在手动管理内存时应该注意,实例变量在定义为 retain 模式时,在调用初始化方法中不应该是自己手动赋值,而是调用setter方法。何为手动赋值?见下面:

在头文件中声明 

@property (nonatomic, retain, getter = name) NSString *_name;

这里本意是想在 _name 每次赋值引用计数加1。而在 .m 文件中如果初始化方法写成:

- (id) initWithName:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值