Saagar Jha > On Sep 5, 2017, at 01:19, Georgios Moschovitis via swift-users > <swift-users@swift.org> wrote: > > Indeed it works, but I don’t get it. > What’s the difference? > > -g. > > PS: Btw, my original code was giving `seg-fault: 11` even on macOS. > >> On 5 Sep 2017, at 10:53 AM, CK TUNG via swift-users <swift-users@swift.org >> <mailto:swift-users@swift.org>> wrote: >> >> This revised code, as below, works without segmentation fault >> >> import Foundation >> >> class ParserDelegate: NSObject, XMLParserDelegate { >> >> func startParsing(_ xml:String) { >> let data = xml.data(using: .utf8)! >> let xmlParser = XMLParser(data: data) >> xmlParser.delegate = self >> xmlParser.parse() >> } >> >> func parserDidStartDocument(_ parser: XMLParser) { >> print("Starting document") >> } >> >> func parser(_ parser: XMLParser, didStartElement elementName: String, >> namespaceURI: String?, qualifiedName qName: String?, attributes >> attributeDict: [String : String]) { >> print("*** \(elementName)") >> } >> } >> >> let xml = "<root><title name=\"test\">George</title></root>" >> let test = ParserDelegate() >> test.startParsing(xml) >> >> On Sep 05, 2017, at 02:24 PM, Georgios Moschovitis via swift-users >> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote: >> >>> As an example, this SegFaults: >>> >>> import Foundation >>> >>> class ParserDelegate: NSObject, XMLParserDelegate { >>> func parserDidStartDocument(_ parser: XMLParser) { >>> print("Starting document") >>> } >>> >>> func parser(_ parser: XMLParser, didStartElement elementName: String, >>> namespaceURI: String?, qualifiedName qName: String?, attributes >>> attributeDict: [String : String] = [:]) { >>> print("*** \(elementName)") >>> } >>> } >>> >>> let xml = "<root><title name=\"test\">George</title></root>" >>> let data = xml.data(using: .utf8)! >>> let xmlParser = XMLParser(data: data) >>> xmlParser.delegate = ParserDelegate()
XMLParser’s delegate is unowned, so it’s being deallocated when you exit the current scope. Hold on to it with a strong reference: let delegate = ParserDelegate() xmlParser.delegate = delegate >>> xmlParser.parse() >>> >>>> On 5 Sep 2017, at 9:01 AM, Georgios Moschovitis >>>> <george.moschovi...@icloud.com <mailto:george.moschovi...@icloud.com>> >>>> wrote: >>>> >>>> Hi, >>>> >>>> I would like to parse an RSS feed using Swift 3.1 on Linux. >>>> I tried to use Foundations’s XML but I only managed to get segmentation >>>> faults. >>>> Is this supposed to work on Linux? I have only seen examples on iOS. >>>> >>>> Apart from that a quick search didn’t reveal any useful XML parsing >>>> library compatible with Linux. >>>> >>>> Any suggestions? >>>> >>>> -g. >>> >>> _______________________________________________ >>> swift-users mailing list >>> swift-users@swift.org <mailto:swift-users@swift.org> >>> https://lists.swift.org/mailman/listinfo/swift-users >>> <https://lists.swift.org/mailman/listinfo/swift-users> >> _______________________________________________ >> swift-users mailing list >> swift-users@swift.org <mailto:swift-users@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-users >> <https://lists.swift.org/mailman/listinfo/swift-users> > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users