Автоматически сгенерированный Swift-Header не работает в Xcode 8

Когда я пытаюсь создать свое приложение с помощью бета-версии Xcode 8 (после преобразования моего Swift 2.2 в Swift 3 с помощью встроенного инструмента), в автоматически сгенерированном заголовке Swift (TargetName-Swift.h) есть некоторые ошибки. На нескольких строках возникают 3 разные ошибки.

Например в этом разделе:

SWIFT_CLASS_PROPERTY(@property (nonatomic, class, copy) NSArray<NSDictionary<NSString *, NSString *> *> * _Nonnull CANewsFilterBlacklist;)
+ (NSArray<NSDictionary<NSString *, NSString *> *> * _Nonnull)CANewsFilterBlacklist;
+ (void)setCANewsFilterBlacklist:(NSArray<NSDictionary<NSString *, NSString *> *> * _Nonnull)newValue;

Линия 1:

TargetName-Swift.h:562:90: Too many arguments provided to function-like macro invocation

а также

TargetName-Swift.h:562:1: Unknown type name 'SWIFT_CLASS_PROPERTY'

Строка 2:

TargetName-Swift.h:563:1: Expected identifier or '('

Это Swift-код, который принадлежит приведенному выше коду:

public static var CANewsFilterBlacklist:[[String:String]] {
    get {
        if let data = iCloudStorageStatic.object(forKey: CAUserDefaultsNewsFilterBlacklistKey) as? [[String:String]] {
            return data
        } else {
            return [[String:String]]()
        }
    }
    set (newValue) {
        iCloudStorageStatic.set(newValue, forKey: CAUserDefaultsNewsFilterBlacklistKey)
    }
}

Я понятия не имею, что не так с моим Swift-кодом? Xcode не показывает никаких ошибок в коде Swift. Он просто генерирует поврежденный Swift-Header.

Это ошибка в Xcode 8 (в Xcode 7 все работало как положено)?


person FelixSFD    schedule 17.06.2016    source источник
comment
Похоже на ошибку в бета-версии Xcode 8. Сообщите об этом.   -  person rickster    schedule 18.06.2016


Ответы (2)


Как сказал Рикстер, это была ошибка в Xcode, которая устранена в бета-версии 2 версии 8.0. .com/26786528

person FelixSFD    schedule 05.07.2016
comment
Любое обновление по этому поводу.? Я получаю аналогичную ошибку на Xcode10. Любое обходное решение для этой проблемы? - person Mani; 14.02.2019

была такая же проблема и заметил, что метод использует объекты, недоступные в Objective-C, в вашем случае

[[Строка:Строка]]

зависит от Swift, попробуйте вместо этого использовать NSDictionary, а также не уверены, могут ли свойства в swift быть преобразованы в эквивалент Objective-C непосредственно компилятором через сгенерированный заголовок,

если вы не используете CANewsFilterBlacklist извне, объявление его как частного также может быть исправлением,

надеюсь, Apple позже придет с правильным исправлением

person Shaz    schedule 28.06.2016