关于Objective-C中内存泄漏的问题

关于Objective-C中内存泄漏的问题,objective-c,memory-leaks,Objective C,Memory Leaks,如果我指定如下内容 self.connection=[NSURLConnection connectionWithRequest:request委托:self] 现在,如果要执行以下操作: 自连接=零 这会是内存泄漏吗?如果没有,为什么?这不会是内存泄漏。这是因为objective c属性是如何实现的。我假设您在财产申报中使用了retain。现在,当您执行self.connection时,将调用以下方法。因为您的连接首先被释放,然后执行到nil的retain操作,该操作只返回nil。因此不会发生

如果我指定如下内容

self.connection=[NSURLConnection connectionWithRequest:request委托:self]

现在,如果要执行以下操作:

自连接=零


这会是内存泄漏吗?如果没有,为什么?

这不会是内存泄漏。这是因为objective c属性是如何实现的。我假设您在财产申报中使用了retain。现在,当您执行self.connection时,将调用以下方法。因为您的连接首先被释放,然后执行到nil的retain操作,该操作只返回nil。因此不会发生内存泄漏

-(void)setConnection:(NSURLConnection *)newConnection {
    if (connection != newConnection) {
        [connection release];
        connection = [newConnection retain];
    }
}

您可以在此处找到详细信息

这不会是内存泄漏。这是因为objective c属性是如何实现的。我假设您在财产申报中使用了retain。现在,当您执行self.connection时,将调用以下方法。因为您的连接首先被释放,然后执行到nil的retain操作,该操作只返回nil。因此不会发生内存泄漏

-(void)setConnection:(NSURLConnection *)newConnection {
    if (connection != newConnection) {
        [connection release];
        connection = [newConnection retain];
    }
}

你可以在这里找到详细信息

否。你认为会有一个吗?否。你认为会有一个吗?