- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
NSProxy的接口(interface)是
public class NSProxy : NSObjectProtocol {
public class func alloc() -> Self
public class func `class`() -> AnyClass
public func forwardInvocation(invocation: NSInvocation)
public func dealloc()
public func finalize()
public var description: String { get }
public var debugDescription: String { get }
public class func respondsToSelector(aSelector: Selector) -> Bool
}
所以它没有任何初始化器。但是Swift编译器需要从子类的初始化器中调用Super.init
。
Super.init isn't called on all paths before returning from initializer
class SimpleDecorator: NSProxy {
let phone: Phone
init(phone: Phone) { // compile error with Super.init
self.phone = phone
}
}
我没有把它放在对 super 的调用中,它不会编译,但是当然,由于 NSProxy 没有 init,所以当我调用 super.init() 时它不会编译。
Swift 中是否可以有 NSProxy 的子类?
最佳答案
NSProxy 是一个抽象类。 Apple 关于 NSProxy 的文档说“一个抽象父类(super class),为充当其他对象或尚不存在的对象的替身的对象定义 API”。
维基百科关于抽象类的文档说:
<小时/>In a language that supports inheritance, an abstract class, or abstract base class (ABC), is a class that cannot be instantiated because it is either labeled as abstract or it simply specifies abstract methods (or virtual methods).
为抽象类调用 super.init() 是错误的。
关于Swift 2.2 和 NSProxy。我该如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36478679/
我想通过打印选择器和参数来拦截发送到代理对象的消息。即使代理没有实现它们并且没有目标对象。请帮忙。我已经查看了几个选项和 Apple 文档,但他们假设您已经知道目标对象。我想干净地完成此操作,而不会出
我想编写一个代理,通过 TCP 将方法调用转发到另一个对象,而无需 NSConnection 和 NSDistanceObject 内容。我想要的是我自己的协议(protocol)。 问题在于,子类化
我正在研究苹果 API 向我提供的一些更可疑的对象(例如 mutableArrayValueForKeyPath),这让我想知道苹果多久给我一次我认为是某个对象的东西,但实际上是只是一个 NSProx
Fabric 告诉我很多用户在我的应用程序中遇到以下崩溃 如果展开,我会看到以下堆栈 Fatal Exception: NSInvalidArgumentException 0 CoreFoun
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我需要用我自己的实现替换对象中的方法。例如, Person *p; // some object NSMutableArray *array = [NSMutableArray array]; [ar
我有一个 NSProxy 的子类,用于将消息转发到对象实例或 Lua 函数(如果它们是为选择器定义的)。这在大多数情况下都有效。然而,UITableViewController 是完全不同的情况。当我
我一直在想为什么 NSProxy 类如此重要。为什么一个对象需要将它的实例变量保存在其他对象中?我需要示例来了解何时使用它。谢谢! 最佳答案 NSProxy 在需要委托(delegate)拦截时很有用
我使用方法调配将所有方法调用包装在一个具有一些额外功能的类中。具体来说,我是: 检查此方法调用所需的对象是否在缓存中 如果缓存中有该对象,则将其返回。 如果没有,分派(dispatch)到原始实现,填
我正在使用OCMock尝试测试 NSURLConnection 的行为。这是不完整的测试: #include "GTMSenTestCase.h" #import @interface HttpTe
NSProxy的接口(interface)是 public class NSProxy : NSObjectProtocol { public class func alloc() -> Se
我正在尝试通过设置 NSProxy 子类来代替我选择的任何 UIView,向我的 UIView 添加功能(根据状态配置 CALayers)。这是我尝试过的: 在我的 NSProxy 子类中,我有以下代
如何在 Swift 中创建一个 NSProxy 子类? 尝试添加任何 init 方法失败并出现错误:“不能在初始化器之外调用 super 初始化”,或者“在从初始化程序返回之前,不会在所有路径上调用
NSProxy Class Reference是这样说的: Typically, a message to a proxy is forwarded to the real object or cau
我正在使用 AFNetworking 从 openweathermap API 检索天气信息。 let manager = AFHTTPSessionManager() manager.req
在 OCMockito 中,测试替身是使用 NSProxy 实现的。 instance 的替身实现 -respondsToSelector: 如下: - (BOOL)respondsToSelecto
在 ARC 下,我有一个对象 Child,它有一个 weak 属性,parent。我正在尝试为 Child 编写一些测试,并且正在使用 OCMock 模拟其 parent 属性。 在 ARC 下,使用
我在单元测试中使用 OCMock 来模拟 NSManagedObjects。我使用 Mogenerator 为我的核心数据对象生成机器和人类可读的文件。我试图模拟 NSManagedObject 以返
保留在 NSObject 协议(protocol)中声明。 因此NSObject类和NSProxy类实现了它。 然而 NSProxy 和 NSObject 类都有一个分配。 为什么 alloc 没有在
我是一名优秀的程序员,十分优秀!