我想知道–initWithRequest:delegate:
的{{1}}和+connectionWithRequest:delegate:
之间的区别?
第一个是no-aotorelease对象,第二个是NSURLConnection
?
我想知道我应该在ios代码中使用哪一个?
答案 0 :(得分:2)
你已经指出了差异
对于iOS代码,最好使用Alloc / init而不是方便的自动释放功能,因为它们在您完成使用后仍然存在并且您无法释放它们
当无法知道何时调用release(例如当您返回未在其他地方保留的对象时)时使用自动释放。最近的自动释放池将在下次池耗尽时释放内存。
如果你确实使用了alloc / init,请记得调用release,否则它会在内存中停留
答案 1 :(得分:1)
Objective-C中以init
开头的所有方法都需要在alloc
方法之后调用。 init-method也返回非自动释放的对象。
从名称开始的所有方法都类似于类名,例如[NSString string]
,[NSArray array]
和其他方法返回autoreleased
个对象,并且不需要预先设置的alloc
方法。
回答您的问题:您可以使用以下任何一种方法:alloc + initWithRequest:delegate:
或connectionWithRequest:delegate:
但请务必在第一种情况下使用release
对象。
答案 2 :(得分:0)
我认为你指出了唯一的区别。
我使用+ connectionWithRequest:delegate:方法
我认为内部正在保留连接,直到它失败或完成