Watson1978
6/19/2012 - 7:16 AM

app_delegate.rb

class RSS
  def parse(url)
    @url = url
    @self = self
    Thread.start do
    #Dispatch::Queue.concurrent.async do
      @xml = NSXMLParser.alloc.initWithContentsOfURL(@url)
      @xml.delegate = @self
      @xml.parse
    end
  end

  def parserDidStartDocument(parser)
    @item = {}
  end

  def parserDidEndDocument(parser)
  end

  def parser(parser,
             didStartElement: elementName,
             namespaceURI: namespaceURI,
             qualifiedName: qualifiedName,
             attributes: attributeDict)
    @string = ""
  end

  def parser(parser,
             didEndElement: elementName,
             namespaceURI: namespaceURI,
             qualifiedName: qName)
    @item[elementName] = @string
    if elementName == "item"
      #p @item
      @item = {}
    end
  end

  def parser(parser,
             foundCharacters: string)
    @string << string.strip
  end
end

class AppDelegate
  def application(application, didFinishLaunchingWithOptions:launchOptions)
    rss = RSS.new
    url = NSURL.alloc.initWithString("http://images.apple.com/main/rss/hotnews/hotnews.rss")
    rss.parse(url)
    true
  end
end