我在Swift中覆盖Objective-C的类方法时遇到问题。我可以从Swift调用它没问题,但不能覆盖它。
方法签名:
+ (id<MyInterface>)newObjectWithId:(NSString *)objectId properties:(NSDictionary *)properties andClient:(Client *)client;
类层次结构:
NSObject <-- MyObject1 <-- MyObject2 <-- MySwiftClass
MyObject1
声明并实现上述方法,MyObject2
也是如此。但是尝试在Swift中覆盖它不起作用。它在自动完成时不可见,当我手动编写时,它显示Method does not override any method from its superclass
。我写的签名看起来像这样:
override class func newObjectWithId(objectId: String!, properties: NSDictionary!, andClient client: Client!) -> MyInterface
我也覆盖了这个类中的其他一些类方法,并且它们没有问题。我认为这个方法中的new
前缀存在问题。有没有人遇到这样的事情并成功解决了?