Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 8.1.1 iPhone 4s代表无法访问_Ios_Objective C_Iphone_Crash_Ios8.1 - Fatal编程技术网

iOS 8.1.1 iPhone 4s代表无法访问

iOS 8.1.1 iPhone 4s代表无法访问,ios,objective-c,iphone,crash,ios8.1,Ios,Objective C,Iphone,Crash,Ios8.1,我有一个应用程序,在所有iPhone 5系列iOS 7+和8+上都可以在iPhone 4 iOS 6上正常运行 但iOS 8.1.1版iPhone 4S在以下方面崩溃: 委托是@property非原子的,assignid委托; 我试图将其更改为“弱”,但由于ARC不允许这样做,因此无法编译: 不确定,我是否应该说服ARC吃掉它,或者这根本不是问题:-/ - (void) timerFireMethod:(NSTimer*)timer { self.counter--; if(

我有一个应用程序,在所有iPhone 5系列iOS 7+和8+上都可以在iPhone 4 iOS 6上正常运行 但iOS 8.1.1版iPhone 4S在以下方面崩溃:

委托是@property非原子的,assignid委托; 我试图将其更改为“弱”,但由于ARC不允许这样做,因此无法编译: 不确定,我是否应该说服ARC吃掉它,或者这根本不是问题:-/

 - (void) timerFireMethod:(NSTimer*)timer
 {
    self.counter--;
    if( self.delegate != nil )
    {

        [self.delegate update:self.counter]; //at this row! ->`EXC_BAD_ACCESS(code=1, address=0xc`
    }
    else
    {
        [self stop];
    }
}


0 objc_msgSend
1 -[countDownTimer timerFireMethod]
2 __NSFireTimer
...................................
9 UIAplicationMain
10 Main
11 start
注意:我没有使用ARC:

有人能告诉我这个问题的答案吗?
老实说,我甚至不知道去哪里看:

一个对象被释放了。柜台的类型是什么?尝试访问委托上的其他内容,以确定解除分配的是委托还是计数器。我们快到2015年了,你不使用ARC,你必须有一个很好的理由!正如消息所说,您的委托调用解除分配对象的方法,并且在检查委托方法时使用`if[self.delegate respondsToSelector:@selectorupdate:]`在dealloc方法中设置一个断点,在这里定义了update:method,可能会得到一些更新hints@BorisCharpentier计数器的类型是int ARC:我刚刚按原样得到了这个项目:在我之前开发它的人在这里做了很多WTF。。另外,我不知道为什么这里不使用ARC,但是我可以看到这个项目最多支持iOS3@Shan谢谢你的建议,我去查一下immidiatly@Shan顺便说一句,我有一个一般性的问题,我是否应该在我使用的每个代表面前添加这个if检查,以避免将来出现此类问题?这是推荐的习惯吗?