Tag: raii

与RAII类似的习惯性短寿命本地对象

我遇到了Objective-C的这个片段: NSNumber *theBalance = [[[NSNumberFormatter alloc] init] numberFromString: [textField text]]; 这似乎泄漏NSNumberFormatter 。 在C ++中,我会做两件事情之一: 为NSNumberFormatter使用auto (即堆栈)存储 使用RAII(例如shared_ptr )来pipe理NSNumberFormatter的生命周期 在Objective-C中,这些选项都不可能。 我试图在堆栈上: NSNumberFormatter fmt; 但是这不能编译。 据我所知,Objective-C中没有RAII的直接等价物。 我可能从一个主要的C ++程序员的angular度来看待这个问题,所以: 在一般情况下,在这里处理像NSNumberFormatter这样的对象的生活的正确的,惯用的(现代的)Objective-C方法是什么? 我真的必须自己明确吗? 在具体情况下是否有解决实际问题的更好方法?