2015-12-20 82 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

就是这样!谢谢 –