草庐IT

bad_cast

全部标签

Swift:EXC_BAD_ACCESS 从实现协议(protocol)的泛型类型调用方法

我正在使用Swift2和Xcode7.3开发一个项目,遇到了一个错误,我还无法理解原因。我创建了一个名为Resource的协议(protocol),它有一个associatedtype和一个该类型的staticvar。在它的扩展中,我试图创建staticvar的getter的默认实现,其中类型是实现另一个的通用struct>协议(protocol)称为ResourceFinderProtocol。一切都编译良好,但在运行时,当执行下面代码片段的最后一行时,它会产生EXC_BAD_ACCESS崩溃。如果我使structResourceFinder不是通用的,它会顺利运行。protocol

swift - 使用 NSNumberFormatter 时的 EXC_BAD_ACCESS(代码=2)

我遇到了一个问题,我这辈子都弄不明白。我在互联网上进行了搜索,试图了解Swifts的EXC_BAD_ACCESS,但似乎无济于事。下面的代码很长,但大多数时候注释是理解相关项所需的所有信息。我有一个类CalculatorController,它包含以下相关方法和属性:importUIKitclassCalculatorController:UIViewController{//theactual`@IBOutlet`whichisneveraccesseddirectly@IBOutletprivateweakvar_mainDisplay:UILabel!//aninstanceof

Swift set delegate to self 给出 EXC_BAD_ACCESS

我正在通过移植现有应用程序来学习Swift。我坚持设置委托(delegate),无法解决问题所在。我有一个扩展UITableViewCell的类importUIKitprotocolSwitchCellDelegate{funcswitchChanged(switchCell:SwitchCell,state:Bool)}classSwitchCell:UITableViewCell{@IBOutletvarswtSelector:UISwitch@IBOutletvarlblTitle:UILabelvardelegate:SwitchCellDelegate?init(style:

casting - Swift 中的 float 划分和类型转换

我正在努力学习Swift,我做了一个简单的平均函数:funcaverage(numbers:Int...)->Float{varsum=0fornumberinnumbers{sum+=number}returnFloat(sum)/Float(numbers.count)}average(1,2,3,4,5,6)这给了我正确的结果:3.5但是,我想知道为什么我必须将sum和numbers.count都转换为float。我试过这样转换:returnFloat(sum/numbers.count)但它只给了我3.0 最佳答案 首先,您

ios - Twilio iOS SDK 在去电时失败并显示 "400 Bad request"

获取示例源代码here,转换为Swift3并应用我为升级后的Twilio帐户生成的token。尝试调用电话时,它会播放声音,但在尝试访问https://matrix.twilio.com/时失败并显示HTTP/1.0400Badrequest2012-02-09/AC....这是尝试调用电话后的日志-2016-10-1618:32:12.955056MyApp[577:121739][DEBUGTCDeviceInternal]InsideTCDeviceInternalinitWithCapabilityToken,capabilityToken_:(null)2016-10-161

casting - Swift:CInt 到 Int 的转换?

在Swift中将CInt转换为Int(原生整数类型)的最简洁方法是什么?现在我正在使用:NSNumber.numberWithInt(myCInt).integerValue这是首选方法吗? 最佳答案 你可以这样做:varc:CInt=4vari:Int=Int(c)CInt是Int32的类型别名,它是Int可以在其初始化中接受的类型之一。以下是我发现可以这样使用的类型:UInt8、Int8、UInt16、Int16、UInt32、Int32、UInt64、Int64、UInt、Float、Double、Float80

dictionary - 带有字典的 iOS 8.1 上的 EXC_BAD_ACCESS

我有一个可通过结构中的静态变量访问的对象(解决方法是目前在swift中缺少类变量支持),结构如下:structConstants{staticvarmyObj=MyObject()}MyObject中有一个字典,如下所示:classMyObject{privatevarparams=Dictionary()funcaddParam(key:String,value:AnyObject){params[key]=value}}现在第一次为Contants.myObj.addParam("param",value:123)调用这个对象时,一切都很好,params有内容["param":12

swift - 在弱变量上使用可选链接的调用方法导致 EXC_BAD_ACCESS

更新:这已在Xcode6beta6中修复。以下代码在delegate?.thing()行上导致EXC_BAD_ACCESS:@class_protocolprotocolFooable{funcfoo()}classBar:Fooable{funcfoo(){}}weakvardelegate:Fooable?letbar=Bar()delegate=bardelegate?.foo()但在我看来一切都是对的。为了使变量成为weak,它必须具有可选类型。所以变量delegate是可选的。弱变量的类型也必须是类类型,所以我将协议(protocol)设为类协议(protocol)。由于我使

ios - IBOutlet 崩溃与 EXC_BAD_ACCESS 即使不是零

在一个UIViewController(rolePageController)中,我配置了另一个UIViewController(drawerController)并从角色页面传递给它2个UIView,这将成为drawerController配置的一部分。一旦drawerController尝试从rolePageController访问IBOutletView,它就会崩溃并显示EXC_BAD_ACCESS(代码=EXC_I386_GPFLT)。在第一个VC(rolePageController)中,这里是IBOutlets:@IBOutletvarrolePageDrawerView:

ios - EXC_BAD_ACCESS 在启动时用于 EAGLContext renderbuffer 存储 : fromDrawable: in Cocos2d app whie debugging

使用默认的cocos2d-swift应用程序,我在我的iPadMini2上收到错误EXC_BAD_ACCESS:BOOLrb_status=[_contextrenderbufferStorage:GL_RENDERBUFFERfromDrawable:layer];但是如果我尝试在不调试的情况下启动应用程序,一切正常。如果我在任何虚拟设备上使用调试,我也不会收到任何错误。为什么它不起作用?如何消除这个错误? 最佳答案 看起来这是某些运行iOS8.3+的设备上的问题。它适用于几乎所有设备,但iPadmini2也不适合我。缺点是调用本