http://ww1.sinaimg.cn/bmiddle/686c6057jw1eqq5lsnu3gj20gn06bjta.jpg
arrTitle数组是在.m中的全局变量,在viewDidLoad负值3个objects,然后下面就奇怪了
在viewWillAppear还可以看到是3个objects,
但是在viewDidAppear的时候arrTitle就变成0个objects。。。实在想不通。。。
![]() | 1 nellace OP ![]() |
![]() | 2 vincentxue 2015-04-01 16:47:19 +08:00 很有可能是被重新初始化了,或者被移除了(如果是可变数组的话)。信息太少,很难判断。 |
![]() | 3 simman 2015-04-01 16:50:35 +08:00 同意楼上,并且重写 viewWillAppear 等,记得要 super 哦。 |
![]() | 4 nellace OP @vincentxue 因为 我问题排查 排查到最后,就锁定在了这两段之间了,中间也没有重新初始化,很是奇怪,xcode版本6.2 |
![]() | 5 vincentxue 2015-04-01 17:07:28 +08:00 ![]() 如果代码量不多的话建议贴个完整的代码看看,目前的信息只能靠猜。 能不用全局变量就别用全局变量,必须用的话尽量用属性代替全局变量,虽然有一丁点的额外的消耗,但以目前的设备性能来说完全可以忽略不及。 用属性也带来很多好处,其中之一就是如果碰到你这种问题,直接重写 setter 打个断点一步就能定位到错误点。 |
![]() | 6 expkzb 2015-04-01 17:08:16 +08:00 weak 还是 strong |
7 padthai 2015-04-01 17:14:57 +08:00 得把。m全贴这才能分析 |
![]() | 8 pH 2015-04-01 17:40:38 +08:00 ![]() 类似这个will did之类的的方法,一般都是要加上super的同名方法 可以参考截图中viewDidAppear方法的第一行代码 |
![]() | 9 eternityz 2015-04-01 17:42:17 +08:00 把 &arrTitle 也打出来确认一下是不是同一个对象。 |
![]() | 10 nellace OP |
![]() | 12 vincentxue 2015-04-01 19:05:32 +08:00 现在除了某些大公司(例如腾讯)的老项目,基本上都是 ARC 了,而且很多大公司的老项目也已经迁移到 ARC 了,ARC 现在已经是标准了,ARC 普及有2-3年了,13年之前很多开源项目还是 MRC 的。 建议先掌握 MRC 之后再使用 ARC,并且强烈推荐使用 ARC,你基本上很难再遇到内存相关的问题,如果你用的 ARC,那你就不会出现今天这个问题了。 |
![]() | 13 markss 2015-04-01 20:39:37 +08:00 ![]() @vincentxue @nellace 同意楼上,从10楼那段代码看,即使是MRC,那段代码也没有问题,alloc 引用计数+1, push 引用计数+1 release -1 ,不会造成tGsystemSet被释放,只有当pop回来的时候才会被释放。我觉得问题可能出在你数组初始化上面,你如果用的类方法初始化,那么就会造成数组提前进入自动释放池,建议用属性,或者类方法初始化时候retain一次。 |
![]() | 14 nellace OP @vincentxue 先对v大再次感谢,项目以后慢慢修改过度过去吧 @markss先谢谢你哦, 问题确实是在这里,我自己写了一个最简单的demo,把项目arc选项选no,然后在self.navagation push新页面前release掉,和上面代码结构差不多,然后确实出现这个问题,今天调试了很久才找到问题点,具体问题我还是不太清楚,因为接触mrc很少,所以害的明天多研究下 |
![]() | 15 vincentxue 2015-04-01 22:08:58 +08:00 |
![]() | 16 markss 2015-04-01 22:17:18 +08:00 @vincentxue 别谦虚,F哥水平称一声V大不为过呀。 |
![]() | 17 nellace OP |
![]() | 18 ianisme 2015-04-01 22:52:07 +08:00 为了以后的版本 转化为ARC吧 |
19 luoyibu 2015-04-02 13:20:05 +08:00 arrTitle 声明的是retain吗? 在mrc下,那个地方的release是必须要调用的,不然会内存泄露。 |