Skip navigation.
 
mlRe: garbage collection and NSConnection
FROM : eblu
DATE : Mon Jun 30 22:10:13 2008

Hi Chris,
   I'm not terribly sure what you are asking for here. From my 
experience (limited experience admittedly) theres really only one way 
to use NSConnection.
  its a pretty elegant class, which is simple, and works as expected, 
except for when garbage collection is enabled.

heres what I do just after NSNetService finds a service:

// Sent when a service appears
- (void)netServiceBrowser:(NSNetServiceBrowser *)browser
        didFindService:(NSNetService *)aNetService
        moreComing:(BOOL)moreComing
{
   NSMutableDictionary* newDict = [[NSMutableDictionary alloc] init];
   [newDict setValue:aNetService forKey:@"theService"];
   
   [serverArrayController addObject:newDict];
   [aNetService setDelegate:self];
   [aNetService resolveWithTimeout:5];
    if(!moreComing)
    {
    }
}

// NSNetService Delegate method:
- (void)netServiceDidResolveAddress:(NSNetService *)sender{
   
   id proxy = nil;
   NSData *addy;
   NSSocketPort* socket;
   NSConnection* connection;
   NSString* hostname;
   
   int a;
   int i;
   
   hostname = [sender hostName];
   socket = (NSSocketPort*)[[NSSocketPortNameServer sharedInstance] 
portForName:@"BKOtherPort" host:hostname];
   connection = [NSConnection connectionWithReceivePort: nil sendPort: 
socket];
   @try{
       proxy = [connection rootProxy];
   }
   @catch(id exception){
       proxy = nil;

   }
   addy = [socket address];
   if(proxy){
           // app level stuff if the proxy exists
   }
}

pretty straight forward,
and every time I ran it with garbage collection on, the NSConnection 
initialized, but NEVER returned the proxy. it returned nil.
all my instance variables were populated, everything on My end was 
correct... or at least behaving as expected. it just wouldn't return 
the proxy object (or the root for that matter)
All I did to fix it, was to turn off garbage collection.
That part runs like a champ now.  the rest of the app won't do 
anything anymore, as it was built on garbage collection.

cheers,
-eb


On Jun 30, 2008, at 3:37 PM, Chris Hanson wrote:

> On Jun 30, 2008, at 10:33 AM, <email_removed> wrote:
>

>> only to discover some weeks later that for some odd reason, 
>> NSConnections do not work when the project is set to support or 
>> require garbage collection.

>
> How are you using NSConnection?  NSConnection and Distributed 
> Objects definitely *does* work with Objective-C garbage collection, 
> at least in the situations in which I've used it.
>
> Some code examples might be illustrative.
>
>  -- Chris
>

Related mailsAuthorDate
mlgarbage collection and NSConnection eblugamma Jun 30, 19:33
mlRe: garbage collection and NSConnection John Pannell Jun 30, 20:57
mlRe: garbage collection and NSConnection eblu Jun 30, 22:10
mlRe: garbage collection and NSConnection Jean-Daniel Dupas Jun 30, 22:19
mlRe: garbage collection and NSConnection Jean-Daniel Dupas Jun 30, 22:25
mlRe: garbage collection and NSConnection Hamish Allan Jun 30, 23:23
mlRe: garbage collection and NSConnection Joan Lluch (casa) Jul 3, 00:09
mlRe: garbage collection and NSConnection Michael Ash Jul 3, 03:33
mlRe: garbage collection and NSConnection Joan Lluch (casa) Jul 4, 11:25
mlRe: garbage collection and NSConnection Jean-Daniel Dupas Jul 4, 11:38
mlRe: garbage collection and NSConnection Joan Lluch (casa) Jul 4, 18:32
mlRe: garbage collection and NSConnection Chris Hanson Jul 4, 22:54
mlRe: garbage collection and NSConnection Chris Hanson Jul 4, 23:02
mlRe: garbage collection and NSConnection Joan Lluch (casa) Jul 6, 00:00
mlRe: garbage collection and NSConnection mmalc crawford Jul 6, 02:05
mlRe: garbage collection and NSConnection Bill Bumgarner Jul 6, 02:09
mlRe: garbage collection and NSConnection Joan Lluch (casa) Jul 6, 08:47
mlRe: garbage collection and NSConnection Hamish Allan Jul 7, 00:18
mlRe: garbage collection and NSConnection Joan Lluch (casa) Jul 7, 09:17
mlRe: garbage collection and NSConnection Sean McBride Jul 7, 19:33
mlRe: garbage collection and NSConnection Hamish Allan Jul 8, 00:25
mlRe: garbage collection and NSConnection Marcel Weiher Jul 10, 18:17
mlRe: garbage collection and NSConnection Michael Ash Jul 10, 18:50
mlRe: garbage collection and NSConnection Marcel Weiher Jul 11, 01:33
mlRe: garbage collection and NSConnection Michael Ash Jul 11, 05:29
mlRe: garbage collection and NSConnection Marcel Weiher Jul 11, 09:21
mlRe: garbage collection and NSConnection Michael Ash Jul 11, 17:59
mlRe: garbage collection and NSConnection Marcel Weiher Jul 11, 20:17
mlRe: garbage collection and NSConnection Michael Ash Jul 11, 21:53
mlRe: garbage collection and NSConnection Sean McBride Jul 12, 00:19
mlRe: garbage collection and NSConnection Marcel Weiher Jul 12, 08:25
mlRe: garbage collection and NSConnection Michael Ash Jul 12, 17:25
mlRe: garbage collection and NSConnection Marcel Weiher Jul 12, 19:24
mlRe: garbage collection and NSConnection Gary L. Wade Jul 12, 21:33
mlRe: garbage collection and NSConnection Michael Ash Jul 12, 22:42
mlRe: garbage collection and NSConnection Gary L. Wade Jul 12, 23:36
mlRe: garbage collection and NSConnection Marcel Weiher Jul 13, 18:29
mlRe: garbage collection and NSConnection Michael Ash Jul 13, 22:19