Ios 手表向手机发送数据后未调用Swift 3 XML解析代理
我试图了解学员是如何为项目工作的。其想法是从watch应用程序的表视图中选择一个部分,然后在手机上解析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"
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//