2012-01-27 62 views
0

表演在我的应用程序以下不会打电话委托:NSNetService代表和ARC

NSNetService * bonjourMonitor; 
    bonjourMonitor = [[NSNetService alloc] initWithDomain:@"local." type:@"_device-info._tcp" name:@"My Mac"]; 
    [bonjourMonitor setDelegate:self]; 
    [bonjourMonitor startMonitoring]; 

我使用自动引用计数。如果没有ARC,做同样的工作是完美的。 NSNetService接口将在代理被调用之前释放。

我该如何防止这种情况发生?

非常感谢!

+1

你在哪里预先执行此调用?当你不使用ARC时,你在哪里释放bonjourMonitor? – Intentss 2012-01-27 22:48:32

+0

@Ben:我在自定义类的委托方法中执行此操作。 – Daniel 2012-01-28 12:11:24

回答

1

将bonjourMonitor定义为ivar或静态。

+0

这当然有用。谢谢! – Daniel 2012-01-28 12:15:37