Ios 此函数的作用是什么;覆盖函数'self'()->;“自我”吗;?

Ios 此函数的作用是什么;覆盖函数'self'()->;“自我”吗;?,ios,swift,amazon-web-services,Ios,Swift,Amazon Web Services,我正在阅读上的AWS SDK示例代码,并看到了以下两个函数: // MARK: NSObjectProtocol hack override func isEqual(object: AnyObject?) -> Bool { return super.isEqual(object) } override func `self`() -> Self { return self } 这只是“NSObjectProtocol hack”上面的一条评论,这对我来说毫无

我正在阅读上的AWS SDK示例代码,并看到了以下两个函数:

// MARK: NSObjectProtocol hack

override func isEqual(object: AnyObject?) -> Bool {
    return super.isEqual(object)
}

override func `self`() -> Self {
    return self
}

这只是“NSObjectProtocol hack”上面的一条评论,这对我来说毫无意义。有人能解释一下他们在这里想干什么吗

这是使用关键字作为标识符的示例。您必须在关键字前后加上反勾号才能使用它。根据(标识符部分下)

要将保留字用作标识符,请在其前后加上反勾(`)。例如,class不是有效的标识符,但'class'是有效的。反勾号不被视为标识符的一部分`x`和x具有相同的含义


//标记:NSObjectProtocol hack
用于注释一段代码,该代码允许Xcode将属性/方法等列表格式化为组。

这是使用关键字作为标识符的示例。您必须在关键字前后加上反勾号才能使用它。根据(标识符部分下)

要将保留字用作标识符,请在其前后加上反勾(`)。例如,class不是有效的标识符,但'class'是有效的。反勾号不被视为标识符的一部分`x`和x具有相同的含义


//标记:NSObjectProtocol hack
用于注释一段代码,该代码允许Xcode将属性/方法等列表格式化为组。

这是一段在使用最新Swift时可以忽略的遗留代码。早期版本的Swift在识别映射器对象间接继承自
NSObject
并实现
NSObjectProtocol
时遇到问题。当前版本的Swift不存在此问题,因此您可以安全地忽略这两种方法。

这是一个在使用最新Swift时可以忽略的遗留代码。早期版本的Swift在识别映射器对象间接继承自
NSObject
并实现
NSObjectProtocol
时遇到问题。当前版本的Swift没有这个问题,因此您可以放心地忽略这两种方法。

但为什么?关键是这些函数实际上什么都不做,只是立即调用
super
来为它们处理它。也许这个类不是
NSObject
的子类,需要符合
NSObject
的要求?NSObject是一个类,但也是一个协议。问题中的对象似乎继承了NSObject协议,该协议要求重写。您能否引用“在关键字前后放置回勾标记”?而且,我不太同意你的观点——我已经试过了,这两种方法不是必需的。我不必重写它来编译代码。添加了引用。我将删除有关所需覆盖的编辑。可能有一段时间它们是需要的,但如果不再需要,它们可以被安全地忽略。但是为什么呢?关键是这些函数实际上什么都不做,只是立即调用
super
来为它们处理它。也许这个类不是
NSObject
的子类,需要符合
NSObject
的要求?NSObject是一个类,但也是一个协议。问题中的对象似乎继承了NSObject协议,该协议要求重写。您能否引用“在关键字前后放置回勾标记”?而且,我不太同意你的观点——我已经试过了,这两种方法不是必需的。我不必重写它来编译代码。添加了引用。我将删除有关所需覆盖的编辑。有可能在某个时候需要它们,但如果不再需要,则可以安全地忽略它们。