Dán*_*agy 5 generics objective-c swift xcode6.3
我更新到Xcode 6.3,我的工作区中有两个独立的项目(一个是框架).现在,Xcode自动生成了这个"frameworkname"-Swift.h头文件,但是当我将泛型类作为属性时,它会生成以下行:
@class Presentation;
SWIFT_CLASS("_TtC13BusinessLogic31MeetupDetailViewControllerModel")
@interface MeetupDetailViewControllerModel : NSObject
@property (nonatomic) /* RsvpStore<Rsvp> */ anRsvpStore;
@end
Run Code Online (Sandbox Code Playgroud)
Objective-c中没有gerenics,所以我该如何解决这个问题呢?
我发现如果我将类型设置为NSObject,我可以解决问题:
@property (nonatomic) NSObject * __nonnull anRsvpStore;
Run Code Online (Sandbox Code Playgroud)
但是对于每个构建,此文件都会重新创建为相同的错误版本.那么我如何强制这个构建来将这个泛型的类型设置为NSObject?
我可以停在设置创建这个兼容性头Build Settings- > Swift Compiler - Code Generation- > Intall Objective-C Compatibility Header到No.
由于我没有在我的项目中编写Objective-C代码,因此该选项没有问题,但这是一种解决方法,而不是兼容性头中的泛型解决方案.
另一种解决方法是,如果使用标记属性private,则它们不会出现在兼容性标头中.
Swift 2.0更新
引入了一个新的@nonobjc属性来有选择地抑制实例成员的ObjC导出,否则这些成员将成为@objc.(16763754)Blockquote
未经测试,但这看起来像一个解决方案.