• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSXMLParser and initWithStream
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSXMLParser and initWithStream


  • Subject: Re: NSXMLParser and initWithStream
  • From: Fritz Anderson <email@hidden>
  • Date: Mon, 28 May 2012 07:44:16 -0500

On 27 May 2012, at 7:14 PM, John Drake wrote:

> Looking at the documentation for NSXMLParser, it seems like the initWithStream: method to initialize a NSXMLParser would be the perfect solution to my problem. I can initialize the parser with a NSInputStream and then call the parse method on NSXMLParser whenever I receive data over my socket which should in turn call the NSXMLParser delegates.

The documentation for -[NSXMLParser -initWithStream:] is sparse, but I see that the description is "Initializes the receiver with the XML contents from the specified stream _and parses it_" [EA]. I guess that there should be no need to call -[NSXMLParser parse] on the incoming data; the whole point of hooking the parser up to a stream should be that you don't have to manage the stream yourself, right?

> However, I'm not seeing any of the delegates being called, the only method I see being called is the stream delegate stream:handleEvent:.


I wonder if it's productive to make your ContentParser the delegate** of the input stream. It's the NSXMLParser that's interested in the incoming data. The convention in the Delegate pattern is that objects have at most one delegate. I do wonder why your setting of .delegate persists after you pass the stream into the parser.

	— F

** In Cocoa parlance, a "delegate" is an object that implements the methods of a delegate protocol (in this case your ContentParser is the delegate of the parser). The methods themselves are "delegate methods." The latter term may be awkward, but "delegate" has to be saved for "the object to which functionality is delegated."

--
Fritz Anderson
Xcode 4 Unleashed: Don't bring your bathroom copy into the kitchen — were you raised in a barn?
<http://x4u.manoverboard.org/>


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • RE: NSXMLParser and initWithStream
      • From: John Drake <email@hidden>
References: 
 >NSXMLParser and initWithStream (From: John Drake <email@hidden>)

  • Prev by Date: Re: Sandboxing. WTF?
  • Next by Date: Re: Losing memory
  • Previous by thread: NSXMLParser and initWithStream
  • Next by thread: RE: NSXMLParser and initWithStream
  • Index(es):
    • Date
    • Thread