- initWithRequest:delegate:和+ connectionWithRequest:delegate之间的区别

时间:2011-12-19 05:35:48

标签: objective-c ios

我想知道–initWithRequest:delegate:的{​​{1}}和+connectionWithRequest:delegate:之间的区别?

第一个是no-aotorelease对象,第二个是NSURLConnection

我想知道我应该在ios代码中使用哪一个?

3 个答案:

答案 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:方法

我认为内部正在保留连接,直到它失败或完成