Adr*_*n_H 6 objective-c nsarray ios swift
我似乎无法覆盖以下方法,并创建了一个独立的示例,现在让我烦恼了几个小时.
它几乎肯定是愚蠢的,但我似乎无法覆盖swift类中的类方法,其中基类是Objective C,特别是返回类型是一个NSArray*.
我刚收到错误," Method does not override any method from its superclass"
所以我的失败如下所示:
但是如果将返回类型更改为像NSString这样简单的东西,它可以正常工作*
现在我已经Array<AnyObject>和其他几个人一起尝试过了,但是我对Swift语法仍然有点新鲜,所以我几乎肯定错过了一些明显的东西.
NSArray *被桥接到Swift as [AnyObject]!(一个隐式解包Array的AnyObject实例).查看生成的Swift接口[ExampleBase exampleMethod]:
将方法返回类型更改为[AnyObject]!.
override class func exampleMethod() -> [AnyObject]! {
return []
}
Run Code Online (Sandbox Code Playgroud)
要在Swift子类中指定可选或具体值,请使用Objective-C nullability说明符:
+ (NSArray * _Nonnull)exampleMethod; 桥梁到 override class func exampleMethod() -> [AnyObject]
+ (NSArray * _Nullable)exampleMethod; 桥梁到 override class func exampleMethod() -> [AnyObject]?
+ (NSArray *)exampleMethod;并且+ (NSArray * _Null_unspecified)exampleMethod;具有相同的行为并且与隐式展开的可选项桥接.
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |