Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: garbage collection and NSConnection



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@hidden 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


_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >garbage collection and NSConnection (From: email@hidden)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.