Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSURL连接_Iphone_Objective C_Delegates_Nsurlconnection - Fatal编程技术网

Iphone NSURL连接

Iphone NSURL连接,iphone,objective-c,delegates,nsurlconnection,Iphone,Objective C,Delegates,Nsurlconnection,那么,为什么要实例化NSURLConnection,然后在下一行中释放它呢?我知道这涉及到委托的使用,但我有点困惑。您不应该在恢复NSURLConnection后释放它。当然,如果您将其用作retain属性(正如@ArtGillespie正确指出的那样),则 实例化该对象时,保留计数将仅为1,如果释放该对象,则保留计数将设置为0,然后该对象将从内存中清除,从那时起,您可能会指向内存中的无效位置 如果将其作为保留属性,则在指定属性值时,将向保留计数添加1。因此,实例化和分配后,您的保留计数将为2。

那么,为什么要实例化NSURLConnection,然后在下一行中释放它呢?我知道这涉及到委托的使用,但我有点困惑。

您不应该在恢复NSURLConnection后释放它。当然,如果您将其用作
retain
属性(正如@ArtGillespie正确指出的那样),则

实例化该对象时,保留计数将仅为1,如果释放该对象,则保留计数将设置为0,然后该对象将从内存中清除,从那时起,您可能会指向内存中的无效位置


如果将其作为保留属性,则在指定属性值时,将向保留计数添加1。因此,实例化和分配后,您的保留计数将为2。然后,正确的做法是释放它,使保留计数返回1,并且您可以在连接完成后正确地
释放
对象(或者将属性设置为
nil
,这将导致对象也被释放)

是否有帮助?请看hjon的评论,他在评论中也谈到了使用self作为代理。您能告诉我们您所说的代码吗?在我脑海中,我认为这样做的唯一原因是,如果您刚刚将其分配给
retain
属性。同意,使用委托并不一定意味着NSURLConnection被保留。