【发布时间】:2018-09-28 21:57:50
【问题描述】:
如何在 Swift 中创建NSProxy 子类?
尝试添加任何 init 方法失败并出现错误:
“不能在初始化程序之外调用超级初始化”,或
“在从初始化程序返回之前,不会在所有路径上调用超级初始化”
使用 Objective-C 子类作为基类是可行的,但感觉更像是一种 hack:
// Create a base class to use instead of `NSProxy`
@interface WorkingProxyBaseClass : NSProxy
- (instancetype)init;
@end
@implementation WorkingProxyBaseClass
- (instancetype)init
{
if (self) {
}
return self;
}
@end
// Use the newly created Base class to inherit from in Swift
import Foundation
class TestProxy: WorkingProxyBaseClass {
override init() {
super.init()
}
}
【问题讨论】:
-
@MartinR 这看起来像是一个老问题,我想知道,有什么改变。
-
显然不是..,
-
这是一个已知的错误:bugs.swift.org/browse/SR-1715。
-
@MartinR 感谢您的提及。我找到了一些解决方法,可能很快就会在这里发布。
标签: swift proxy-pattern nsproxy