记录一个IOS开发Bug消除的经历

来源:互联网 发布:淘宝怎么找同款店铺 编辑:程序博客网 时间:2024/04/28 18:51

1、问题出现:运行调试程序时得到EXC_BAD_ACCESS消息,很明显是向已经释放对象发送消息

2、查找对象:先进行操作,Edit Scheme--Enable ZombieObject,然后再次运行程序时在底部调试窗口即可看到是imageArray被释放了,关于imageArray,是在.h文件中定义了一个类级变量NSMutableArray*imageArray,然后在viewDidLoad函数中初始化

self.ImageArr=[NSArray arrayWithObjects:[UIImage imageNamed:@"share.png"],[UIImage imageNamed:@"home_baike.png"],[UIImage imageNamed:@"home_chat.png"],[UIImage imageNamed:@"Icon.png"],nil];

3、问题解决:猜想可能是imageArray是由类方法创建,系统择机释放掉了,所以在其它地方无法使用。于是定义了一个属性

@property(nonatomic,retain)  NSMutableArray*ImageArr;

然后在初始化imageArray时retain一下,后面使用就直接找ImageArr了;

再次运行,程序没问题了

4、疑问:一直以为OC中类成员变量跟C#里面一样,初始化后在类装载过程中均可使用,看来不是这样的,那为什么属性就可以

#ipad开发
0 0
原创粉丝点击