Метод Objective C, возвращающий словарь сбоев Класса в Xcode 10.2 - PullRequest
0 голосов
/ 02 апреля 2019

Я столкнулся со странным сбоем после обновления 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

Я использую этот метод Objective C в Swift как

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

, который прекрасно работает с Xcode 10.1.

Но после обновления Xcode до 10.2 приложение вылетает, говоря Thread 1: EXC_BAD_ACCESS (code=1, address=0x0) в строке 1. У меня нет никакой подсказки.

У меня нет контроля над классом Car.Как бы я справился с ситуацией?

1 Ответ

1 голос
/ 02 апреля 2019

Если вы хотите использовать класс в swift без особых проблем, просто измените подпись в интерфейсе с Class на id.В реализации вам не нужно менять.

 @interface Car : NSObject
 + (NSDictionary<NSString *, id>  *) carMapping ;
 @end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...