+ animateWithDuration:animations:completion:在模拟器下崩溃

问题描述

|| 更新资料 我也遇到了同样的问题,调用calls0ѭ在设备上可以正常工作,但在模拟器上崩溃。
[UIView animateWithDuration:0.5 
                 animations:^{
                     NSLog(@\"Begin\");
                 }
                 completion:^(BOOL finished){
                     NSLog(@\"End\");
                 }];
如您所见,我没有访问任何其他对象,它仍然会因EXC_BAD_ACCESS而崩溃。 更新2 似乎只有在
completion:
中传递
block
并传递NULL时才能崩溃。
[UIView animateWithDuration:0.5 
                 animations:^{
                     NSLog(@\"Begin\");
                 }
                 completion:NULL];
原始问题 我之所以使用手机进行开发,主要是因为我使用的库不是为英特尔编译的,而是现在改回模拟器以加快速度。 当我使用UIView animateWithDuration并不得不在我的代码中临时将其注释掉时,我遇到了崩溃。他们在电话上工作正常。我使用的是最新的SDK 4.3.1(几乎),并且要从4.0开始进行编译。 任何想法为什么会崩溃?
    [UIView animateWithDuration:0.5 animations:^ {
    mapTableOverlay.alpha = 0.8;} completion:^(BOOL finished){}];
调用上面的行时获取EXC_BAD_ACCESS。感谢帮助....

解决方法

这不是一个正确的答案,尽管它确实概述了导致问题的原因以及可能缓解该问题的原因-我也遇到了同样的问题,即使没有传递任何对象,甚至没有任何对象,UIView animateWithDuration都会突然崩溃。块完成。当我添加Urban Airship库和相关框架(libUAirship-1.1.0.a,FNetwork.framework,MobileCoreServices.framework,Security.framework,SystemConfiguration.framework,libz.dylib,libsqlite3.dylib,CoreTelephony.framework,StoreKit时,它就开始了.framework),并在我再次摆脱它们​​时立即停止。我知道这与sqlite lib和storeKit框架无关,因为我现在正在使用它们,但是我从未对其进行正确跟踪。我也很感谢您提供更彻底的答案!,我需要查看更多代码来确保,但是您要访问的唯一对象是
mapTableOverlay
,因此似乎问题出在该对象上。查看调用此动画时的状态。可能没有将iVar设置为nil释放
mapTableOverlay
(也许在
viewDidUnload
中)吗? 在您的问题中添加以下内容将有所帮助: 编码“ѭ6”生命周期 显示动画上下文的代码 崩溃后的堆栈跟踪

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...