Ios 手表向手机发送数据后未调用Swift 3 XML解析代理

Ios 手表向手机发送数据后未调用Swift 3 XML解析代理,ios,swift,delegates,watchkit,Ios,Swift,Delegates,Watchkit,我试图了解学员是如何为项目工作的。其想法是从watch应用程序的表视图中选择一个部分,然后在手机上解析xml。但是,当我单击一个部分来启动解析器时,什么也没有发生 因此,当手机加载时,我会执行以下操作 override func viewDidLoad() { super.viewDidLoad() parser.delegate = self if (WCSession.isSupported()) { print("Phone Connected"

我试图了解学员是如何为项目工作的。其想法是从watch应用程序的表视图中选择一个部分,然后在手机上解析xml。但是,当我单击一个部分来启动解析器时,什么也没有发生

因此,当手机加载时,我会执行以下操作

override func viewDidLoad() {
    super.viewDidLoad()

    parser.delegate = self

    if (WCSession.isSupported()) {
        print("Phone Connected")
        session = WCSession.default()
        session.delegate = self
        session.activate()
    }
}
当我从手表上点击一个部分向手机发送消息时,我会尝试开始解析url的数据

func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
    parseSection(s: message["section"]! as! String)
}

func parseSection(s: String){
    let link = "http://www.espn.com/espn/rss/" + s 
    let url : URL = URL(string: link)!
    parser = XMLParser(contentsOf: url)!
    parser.parse()
}
但以下代表什么也不做

func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
    print("Parser Begins")
}

func parser(_ parser: XMLParser, foundCharacters string: String) {
    print("Characters Found")
}

func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
    print("Parser Ends")
}

您的类需要实现
XMLParserDelegate
协议,以便调用解析函数。您已经这样做了,但没有为XMLParser设置委托:

func parseSection(s: String){
    let link = "http://www.espn.com/espn/rss/" + s 
    let url : URL = URL(string: link)!
    parser = XMLParser(contentsOf: url)!
    parser.delegate = self  // <-- set the delegate
    parser.parse()
}
func parseSection(s:String){
让链接=”http://www.espn.com/espn/rss/“+s
让url:url=url(字符串:链接)!
parser=XMLParser(contentsOf:url)!
parser.delegate=self//