Iphone NSURL连接
那么,为什么要实例化NSURLConnection,然后在下一行中释放它呢?我知道这涉及到委托的使用,但我有点困惑。您不应该在恢复NSURLConnection后释放它。当然,如果您将其用作Iphone NSURL连接,iphone,objective-c,delegates,nsurlconnection,Iphone,Objective C,Delegates,Nsurlconnection,那么,为什么要实例化NSURLConnection,然后在下一行中释放它呢?我知道这涉及到委托的使用,但我有点困惑。您不应该在恢复NSURLConnection后释放它。当然,如果您将其用作retain属性(正如@ArtGillespie正确指出的那样),则 实例化该对象时,保留计数将仅为1,如果释放该对象,则保留计数将设置为0,然后该对象将从内存中清除,从那时起,您可能会指向内存中的无效位置 如果将其作为保留属性,则在指定属性值时,将向保留计数添加1。因此,实例化和分配后,您的保留计数将为2。
retain
属性(正如@ArtGillespie正确指出的那样),则
实例化该对象时,保留计数将仅为1,如果释放该对象,则保留计数将设置为0,然后该对象将从内存中清除,从那时起,您可能会指向内存中的无效位置
如果将其作为保留属性,则在指定属性值时,将向保留计数添加1。因此,实例化和分配后,您的保留计数将为2。然后,正确的做法是释放它,使保留计数返回1,并且您可以在连接完成后正确地
释放对象(或者将属性设置为nil
,这将导致对象也被释放)是否有帮助?请看hjon的评论,他在评论中也谈到了使用self作为代理。您能告诉我们您所说的代码吗?在我脑海中,我认为这样做的唯一原因是,如果您刚刚将其分配给retain
属性。同意,使用委托并不一定意味着NSURLConnection被保留。