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 (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to