2015-12-20 121 views
0

我有以下雨燕類模塊名,Swift.h缺少方法產生

public class Model : NSObject 
{ 
    override init() 
    { (...) } 

    class func fileListHasBeenUpdatedEvent() -> String 
    { (...) } 

    func fileExtensions() -> [String] 
    { (...) } 

    func filesWithExtension(ext : String) -> [ModelFile] 
    { (...) } 

    func addFilesWithThoseURLs(urlList:[NSURL]) 
    { (...) } 
    } 

    func fileListHasBeenUpdated(modelElement : EasyModelElementProtocol) 
    { (...) } 
} 

和產生模塊名,Swift.h看起來像

@interface Model : NSObject 
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 
+ (NSString * __nonnull)fileListHasBeenUpdatedEvent; 
- (NSArray<NSString *> * __nonnull)fileExtensions; 
- (void)addFilesWithThoseURLs:(NSArray<NSURL *> * __nonnull)urlList; 
@end 

所以我清楚地錯過了filesWithExtension:和fileListHasBeenUpdated :.我已經多次清理Derived數據並以多種方式重建...

這是一個已知的XCode錯誤嗎?或者我錯過了什麼?

+0

是M odelFile存在於生成的文件中,因此可以在ObjC中表示? – bouke

回答

3

只是一個猜測,但我想象EasyModelElementProtocolModelFile是不能在目的表示C.

EasyModelElementProtocol需要符合NSObject對象和我猜ModelFile可能或是結構或不從NSObject

IIRC繼承類,你應該能夠通過標記功能@objc,以測試這一點,編譯器應該通知您究竟爲什麼它不能在目標C表示

+0

就是這樣!謝謝 –