我是Swift的新手,具有一定的C编程背景,并且我一直在学习Internet教程来学习Swift语言。在下面的代码中,我试图为我的RSS应用程序解析XML。下面的代码来自我在网上看到的一个教程。每当我看到self
时,我都无法掌握其背后的真实概念。到目前为止,我的理解是,代表们向自己发送消息,但是在下面的上下文中,我不太清楚。
import Foundation
struct RSSItem {
var title: String
var description: String
var pubDate: String
}
class feedParser: NSObject, XMLParserDelegate {
private var rssItems: [RSSItem] = []
private var currentElement = ""
private var currentTitle: String = "" {
didSet {
currentTitle = currentTitle.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
}
}
private var currentDescription: String = "" {
didSet {
currentDescription = currentDescription.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
}
}
private var currentPubDate: String = "" {
didSet {
currentPubDate = currentPubDate.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
}
}
private var parserCompletionHandler: (([RSSItem]) -> Void)?
func parseFeed(url: String, completionHandler: (([RSSItem]) -> Void)?) {
// Use of self on the following line:
self.parserCompletionHandler = completionHandler
}
}
答案 0 :(得分:-1)
self
在处理类和继承的类中存在的成员名称时消除了歧义。
在您的特定示例中,它是可选的。