Используйте NS_REFINED_FOR_SWIFT без включения Swift Runtime - PullRequest
0 голосов
/ 10 октября 2018

Я работаю над добавлением аннотаций Swift, таких как NS_SWIFT_NAME, в свой существующий проект Objective-C (распространяемый через. Cocoapods, Carthage и т. Д.), Чтобы я мог улучшить совместимость Swift, не заставляя пользователей ObjC добавлять Swiftвремя выполнения.

@interface TestObject : NSObject

- (void)getFirstName:(NSString **)firstName;

@end

Какие действительно уродливые типы Swift:

func getFirstName(firstName: AutoreleasingUnsafeMutablePointer<NSString?>)

Я хочу работать с аннотацией NS_REFINED_FOR_SWIFT:

@interface TestObject : NSObject

- (void)getFirstName:(NSString **)firstName NS_REFINED_FOR_SWIFT;

@end

Добавление расширений Swift для большего количества имен методов Swifty:

public extension TestObject {
    func getFirstName() -> String? {
        var firstName: NSString? = nil
        __getFirstName(&firstName)
        return firstName as String?
    }
}

Есть ли способ включить это расширение для тех разработчиков, которые имеют код Swift, но исключают его из кодовых баз только Objective-C?Я не хочу добавлять среду выполнения Swift без необходимости.

РЕДАКТИРОВАТЬ: Обновлено с лучшим примером кода. Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...