Hello,

I will log a bug about the delegate property, as obviously it was
mis-generated. For the rest, can you provide a small test-case ?

Regards, Laurent Etiemble.

2009/11/15 Duane Wandless <[email protected]>:
> Some more info.  I am on Snow Leopard but get the same results on Leopard.
> I took the code from NSURLConnection.SetDelegate() and moved it into my code
> like this:
>
>                 Action<NSURLConnection.NSURLConnectionEventDispatcher>
> assignment =
>                 (d =>
>                     {
>                         d.ConnectionDidCancelAuthenticationChallenge += new
> NSURLConnection.ConnectionDidCancelAuthenticationChallengeEventHandler(d_ConnectionDidCancelAuthenticationChallenge);
>                         d.ConnectionDidFailWithError += new
> NSURLConnection.ConnectionDidFailWithErrorEventHandler(d_ConnectionDidFailWithError);
>                         d.ConnectionDidFinishLoading += new
> NSURLConnection.ConnectionDidFinishLoadingEventHandler(d_ConnectionDidFinishLoading);
>                         d.ConnectionDidReceiveAuthenticationChallenge += new
> NSURLConnection.ConnectionDidReceiveAuthenticationChallengeEventHandler(d_ConnectionDidReceiveAuthenticationChallenge);
>                         d.ConnectionDidReceiveData += new
> NSURLConnection.ConnectionDidReceiveDataEventHandler(d_ConnectionDidReceiveData);
>                         d.ConnectionDidReceiveResponse += new
> NSURLConnection.ConnectionDidReceiveResponseEventHandler(d_ConnectionDidReceiveResponse);
>                         d.ConnectionWillCacheResponse += new
> NSURLConnection.ConnectionWillCacheResponseEventHandler(d_ConnectionWillCacheResponse);
>                         d.ConnectionWillSendRequestRedirectResponse += new
> NSURLConnection.ConnectionWillSendRequestRedirectResponseEventHandler(d_ConnectionWillSendRequestRedirectResponse);
>                         d.ConnectionDidSendBodyData += new
> NSURLConnection.ConnectionDidSendBodyDataTotalBytesWrittenTotalBytesExpectedToWriteEventHandler(d_ConnectionDidSendBodyData);
>                     });
>                 NSURLConnection.NSURLConnectionEventDispatcher @delegate =
> new NSURLConnection.NSURLConnectionEventDispatcher();
>                 assignment(@delegate);
>                 NSURLConnection conn = new NSURLConnection(req, @delegate);
>
> Also added some logging to
> NSURLConnectionEventDispatcher.RespondsToSelector() and I do see in the log
> some requests to see if my delegate responds to:
> selector
> connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:
> selector connection:canAuthenticateAgainstProtectionSpace:
> selector connection:needNewBodyStream:
>
> But only these 3.  I added the ConnectionDidSendBodyData event, which is
> also not called.  I did do the same code in obj-c and the same 3 selectors
> are checked plus a few extra.  And the didSendBodyData selectors is called
> in obj-c.
>
> Because of the logging I know that the @delegate is being inspected by
> NSURLConnection.  But after those 3 no selectors are called on
> NSURLConnectionEventDispatcher.  I even tried just returning true to
> respondsToSelector hoping to raise an error, but that did not.
>
> Any help would be greatly appreciated.
>
> Duane
>
> On Sat, Nov 14, 2009 at 11:09 AM, Duane Wandless <[email protected]> wrote:
>>
>> I'm trying to use NSURLConnection, mainly to take advantage of Apple's
>> built in proxy detection.  However I cannot get the delegate to work.
>>
>> Any help in getting NSURLConnection to work would be greatly appreciated.
>>
>> NSURLConnection.Class.cs defines:
>> public virtual Id Delegate
>>         {
>>             get { return ObjectiveCRuntime.SendMessage<Id>(this,
>> "delegate"); }
>>             set { ObjectiveCRuntime.SendMessage(this, "setDelegate:",
>> value); }
>>         }
>>
>> However there is no "delegate" selector defined on NSURLConnection so
>> SetDelegate fails with:
>> 2009-11-14 10:50:12.468 SimplePrototype[1356:5e03] -[NSURLConnection
>> delegate]: unrecognized selector sent to instance 0x6d3b20
>>
>> Also if I try:
>>             NSURLConnection.NSURLConnectionEventDispatcher d =  new
>> NSURLConnection.NSURLConnectionEventDispatcher();
>>             d.ConnectionDidFailWithError += new
>> NSURLConnection.ConnectionDidFailWithErrorEventHandler(d_ConnectionDidFailWithError);
>>             d.ConnectionDidFinishLoading += new
>> NSURLConnection.ConnectionDidFinishLoadingEventHandler(d_ConnectionDidFinishLoading);
>>             d.ConnectionDidReceiveData += new
>> NSURLConnection.ConnectionDidReceiveDataEventHandler(d_ConnectionDidReceiveData);
>>             d.ConnectionDidReceiveResponse += new
>> NSURLConnection.ConnectionDidReceiveResponseEventHandler(d_ConnectionDidReceiveResponse);
>>             NSURLConnection conn = new NSURLConnection(req, d);
>>
>> none of the callbacks are invoked.  I also tried creating a class that
>> defined:
>>         [ObjectiveCMessage("connection:didReceiveResponse:")]
>>         public void didReceiveResponse(NSURLConnection conn, NSURLResponse
>> resp)
>>
>> but that failed to receive a response either.  I also tried creating the
>> connection with start immediately false and then calling start, again
>> without success.
>>
>> Thanks,
>> Duane
>>
>
>

Reply via email to