我正在GitHub上阅读AWS SDK示例代码,并看到以下两个函数:
// MARK: NSObjectProtocol hack
override func isEqual(object: AnyObject?) -> Bool {
return super.isEqual(object)
}
override func `self`() -> Self {
return self
}
这只是上面的一条评论" NSObjectProtocol hack",这对我来说并没有多大意义。任何人都可以解释他们在这里要做什么吗?
答案 0 :(得分:1)
这是使用关键字作为标识符的示例。您必须在关键字之前和之后放置反引号才能使用它。根据{{3}}(在标识符部分下)
要使用保留字作为标识符,请在其前后加上反引号(`)。例如,class不是有效的标识符,但`class`是有效的。反引号不被视为标识符的一部分; `x`和x具有相同的含义。
// MARK: NSObjectProtocol hack
用于评论允许Xcode将属性/方法列表格式化为组的代码部分。
答案 1 :(得分:1)
这是使用最新Swift时可以忽略的遗留代码。 Swift的早期版本存在一些问题,即识别出mapper对象间接继承自NSObject
并实现NSObjectProtocol
。当前版本的Swift没有问题,因此您可以放心地忽略这两种方法。