Smtp 我是否必须在arc中释放任何arc对象?

Smtp 我是否必须在arc中释放任何arc对象?,smtp,automatic-ref-counting,Smtp,Automatic Ref Counting,我正在使用非arc编写的库(SMTP库-通过使用编译器标志将其保持为非arc)。现在,我的一个类被注册为这个库的委托,库正在向我传递retaincount1对象。弧前我应该释放这样的对象,但现在在弧中我不知道该怎么办?记住,如果类本身被释放,弧前你必须在对象之前释放每个类的每个实例变量。规则说 使用new、alloc或copy创建对象时,该对象具有 保留计数1。您负责向对象发送释放或 完成后自动释放消息。这样,它就会被清洗干净 当它的使用寿命结束时,它就会被唤醒 当您通过任何其他机制抓住一个对

我正在使用非arc编写的库(SMTP库-通过使用编译器标志将其保持为非arc)。现在,我的一个类被注册为这个库的委托,库正在向我传递retaincount1对象。弧前我应该释放这样的对象,但现在在弧中我不知道该怎么办?

记住,如果类本身被释放,弧前你必须在对象之前释放每个类的每个实例变量。规则说

  • 使用new、alloc或copy创建对象时,该对象具有 保留计数1。您负责向对象发送释放或 完成后自动释放消息。这样,它就会被清洗干净 当它的使用寿命结束时,它就会被唤醒

  • 当您通过任何其他机制抓住一个对象时,假设它已经 retain计数为1且已自动删除。你不知道 需要做任何进一步的工作,以确保它得到清理。如果你要去 要将该对象保留任意长度的时间,请保留该对象并确保 完成后释放它

  • 如果保留对象,则需要(最终)释放或自动释放它。 平衡这些保留和释放

因此,如果您打算暂时使用该对象(如在单个函数的作用域中),您什么也不做,但如果要长时间使用,您可以保留该对象(将保留计数增加到2),并在完成后将其释放,初始保留计数1将是库要做的工作