On 16 Sep 2013, at 22:10, Charles Srstka <cocoa...@charlessoft.com> wrote:
> On Sep 16, 2013, at 3:22 AM, Gerriet M. Denkmann <gerr...@mdenkmann.de> wrote: > >> In a new app (not document based) I inserted: >> >> #import "ZipProtocol.h" >> >> // ZipProtocol.h: >> @protocol ZipProtocol <NSObject> >> - (void)command:(NSString *)command withReply: (void (^)( NSString >> *answerString ))reply; >> @end >> >> #define MAGIC_BUG_REMOVAL // defined or not - makes a strange >> difference >> >> - (void)applicationDidFinishLaunching:(NSNotification *)aNotification >> { >> NSString *helperName = @"something.very.silly"; >> >> NSXPCConnection *aCo = [[NSXPCConnection alloc] >> initWithMachServiceName: helperName >> >> options: 0 >> ]; >> if ( aCo == nil) // error >> { >> NSLog(@"%s Error NSXPCConnection",__FUNCTION__); >> return ; >> }; >> >> #ifdef MAGIC_BUG_REMOVAL >> NSLog(@"%s will use magic - you will see >> MAGIC_ERROR",__FUNCTION__); >> #else >> NSLog(@"%s without magic - you will NOT see >> MAGIC_ERROR",__FUNCTION__); >> #endif >> >> aCo.remoteObjectInterface = [ NSXPCInterface interfaceWithProtocol: >> @protocol(ZipProtocol) ]; >> [ aCo resume]; >> >> // can do magic here >> >> id <ZipProtocol> ree; >> ree = [ aCo remoteObjectProxyWithErrorHandler: ^(NSError *err) >> { >> // if helperName is not running >> (always the case) and >> // MAGIC_BUG_REMOVAL is NOT >> defined, then the next line will never print: >> NSLog(@"%s MAGIC_ERROR: >> %@",__FUNCTION__, err); >> } >> ]; >> if ( ree == nil) // error >> { >> NSLog(@"%s Error remoteObjectProxy",__FUNCTION__); >> return; >> }; >> >> // can do magic here as well: >> >> #ifdef MAGIC_BUG_REMOVAL >> NSLog(@"%s will use magic",__FUNCTION__); >> #endif >> >> [ ree command: @"a command" >> withReply: ^( NSString *answerString ) >> { >> NSLog(@"%s the reply block %@",__FUNCTION__, >> answerString ); >> [ aCo invalidate]; >> } >> ]; >> >> NSLog(@"%s did send",__FUNCTION__); >> } >> >> >> The question: why does the fact whether MAGIC_BUG_REMOVAL is defined or not >> makes any difference? >> Seems not to depend on optimisation - same for Debug and Release builds. >> >> Probably there is a very simple answer, but I just cannot see it. > > What's the error that logs in your error handler? If (and only if) MAGIC_BUG_REMOVAL is defined, I see: Error Domain=NSCocoaErrorDomain Code=4099 "Couldn’t communicate with a helper application." Makes sense, as there just is no helper application named: "something.very.silly". Kind regards, Gerriet. _______________________________________________ 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