我不太确定这是一个愚蠢的新手问题,所以我把它排除在主题之外;-)我的应用程序有一些objC框架通过桥接头桥接。我在运行时看到的一个问题与objC NSData对象长度属性和Swift数据计数属性有关。
本案例中框架的代码行如下所示
if([request.requestBody length] > 0){
并且请求对象的接口看起来像这样......
接口AEServiceRequest:NSObject
属性(非原子,只读,强,可空)NSData * requestBody;
当应用程序运行并且它询问长度方法(也是.length)时,下面抛出的异常就好像长度调用没有被转换为count但是NSData对象确实被转换为Data。只是一个猜测。在他们的经历中有没有人见过这种类型的东西?我有什么不妥之处吗?
我将一些NSLog添加到用于跟踪的框架代码中......
AEDAService:AEService 1.4.2 init启动了...... 2016-08-25 14:12:44.592 AEDemoApp_Swift_OSX [24703:4124653]输入:_urlRequest 2016-08-25 14:12:44.592 AEDemoApp_Swift_OSX [24703:4124653]开始调用:if(request.requestBody.length> 0 2016-08-25 14:12:44.592 AEDemoApp_Swift_OSX [24703:4124653] - [_ SwiftValue length]:无法识别的选择器发送到实例0x61800004c480 2016-08-25 14:12:44.593 AEDemoApp_Swift_OSX [24703:4124653]引发了未被捕获的异常 2016-08-25 14:12:44.593 AEDemoApp_Swift_OSX [24703:4124653] - [_ SwiftValue length]:无法识别的选择器发送到实例0x61800004c480 2016-08-25 14:12:44.593 AEDemoApp_Swift_OSX [24703:4124653]( 0 CoreFoundation 0x00007fff942d04f2 __exceptionPreprocess + 178 1 libobjc.A.dylib 0x00007fff8c9a873c objc_exception_throw + 48 2 CoreFoundation 0x00007fff9433a1ad - [NSObject(NSObject)doesNotRecognizeSelector:] + 205
之前有人见过这种行为。 BTW使用xCode 8 beta 6 w / Swift 3