0

将 Xcode 更新到 10.2 后,我遇到了奇怪的崩溃。我有一个Objective-C类方法如下

@interface Car: NSObject 

+ (NSDictionary<NSString *, Class>  *) carMapping;

@end

NSDictionary<NSString *, Class>它返回如下类型的字典

@implementation Car

+ (NSDictionary<NSString *, Class>  *) carMapping {
    return @{
        @"BMW": [BMWCar class],
        @"Mercedes": [MercedesCar class],
        @"Toyota": [ToyotaCar class],
        @"Tesla": [TeslaCar class]
        };
}

@end

我在 Swift 中使用这个 Objective-C 方法

let carMapping = Car.carMapping()
print(carMapping)

与 Xcode 10.1 完美配合。

但是在将 Xcode 更新到 10.2 后,应用程序Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)在第 1 行崩溃了。我没有任何线索。

我无法控制班级Car。我将如何处理这种情况?

4

1 回答 1

1

如果你想在 swift 中轻松使用类,只需将接口中的签名从 Class 更改为 id。在实现中,您无需更改。

 @interface Car : NSObject
 + (NSDictionary<NSString *, id>  *) carMapping ;
 @end
于 2019-04-02T14:35:24.350 回答