I can test for that class, but I don't know... it seemed a little more
resilient to check if the object responds to the selector I want. OTOH, I
can't imagine that the definition of a status code for an HTTP request will
change in the future... that just seems a little too far-fetched to concern
myself with. 200 is OK, 404 is file not found, etc., now and forever :)
On Dec 1, 2004, at 5:02 PM, Jeff Laing wrote:
I think I'd be testing for that
class and casting, rather than testing that that message was processed.
After all, someone may introduce a different NSURLResponse subclass that
responds to that message in a different way, or at least in a way you weren't
expecting...
-----Original Message-----
From: John Stiles [mailto:email@hidden]
Sent: Thursday, December 02, 2004 11:56 AM
To: Jeff Laing
Cc: email@hidden
Subject: Re: CodeWarrior and Objective-C warnings
"statusCode" isn't mine, it's a NSHTTPURLResponse selector. The
NSURLResponse being sent to the callback is actually an NSHTTPURLResponse--at
least, that's the plan :)
On Dec 1, 2004, at 4:52 PM, Jeff Laing wrote:
My guess would be to make your
statusCode part of a formal protocol and then use an explicit cast once you
are sure that response implements the protocol.
Alternately, if you are going to use
respondsToSelector: to test viability, you could use performSelector: to
actually invoke it.
-----Original Message-----
From: John Stiles [mailto:email@hidden]
Sent: Thursday, December 02, 2004 11:43 AM
To: email@hidden
Subject: CodeWarrior and Objective-C warnings
I have code that looks like this
- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
{
if( [response
respondsToSelector:@selector(statusCode)] )
{
if( [response statusCode] == 200
)
{
// stuff
}
}
}
When I call [response statusCode] in the code above, CodeWarrior
warns that "receiver cannot handle this message." Obviously this was taken
care of on the previous line, but I can see how a compiler might not
understand this :) How can I placate the compiler and silence the warning
(other than disabling warnings)?