2016-06-17 6 views
3

Xcode 8 베타 (내 도구를 사용하여 Swift 2.2를 Swift 3로 변환 한 후)로 응용 프로그램을 빌드하려고하면 자동으로 생성 된 Swift 헤더 (TargetName-Swift.h) 오류. 여러 줄에서 3 가지 오류가 발생합니다.Xcode 8에서 자동으로 생성 된 Swift-Header가 깨졌습니다.

이 절의 예

:

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 '(' 
,

이것은 위의 코드에 속하는 스위프트 - 코드 : 나는 아무 생각이

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) 
    } 
} 

, 내 스위프트 - 코드에 문제가 있나요? Xcode는 Swift 코드에 오류를 표시하지 않습니다. 단지 부패한 Swift-Header를 생성합니다.

Xcode 8의 버그 (Xcode 7에서 모든 것이 예상대로 작동 했나요?)?

+1

Xcode 8 베타의 버그처럼 보입니다. [신고 해주세요.] (http://bugreport.apple.com) – rickster

답변

-1

이 같은 문제가 발생했습니다 및 방법은 귀하의 경우, 목표 - C에서 사용할 수없는 객체를 사용하여있는 것을 발견

[[문자열 : 문자열]]

특정 신속하고, NSDictionary 대신 을 사용하고, 생성 된 헤더를 통해 컴파일러가 Objective-C로 직접 변환 할 수 있는지 swift를 직접적으로 변환 할 수 있는지 확실하지 않은 경우, CANewsFilterBlac을 사용하지 않는 경우

klist를에서 비공개로 그것을 선언하는 것은 수정도 될 수 밖에

희망 적절한 수정 함께 올 것이다 사과 나중에 rickster 말했듯이, 그것은 버전 8.0 베타 버전에서 해결 엑스 코드의 버그이었다