objective-c - 强制释放自动释放对象

标签 objective-c memory-leaks

我可以通过调用没有自动释放池的释放来强制 Autorelase 对象吗:

NSString *myString = [[[NSString alloc] init] autorelease];
[myString release];

通常是这样的:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *myString = [[[NSString alloc] init] autorelease];
[pool release];

最佳答案

第一个示例将崩溃,因为字符串将被过度释放。如果您想控制自动释放对象的生命周期,正确的方法就是第二个示例所做的 - 创建一个本地自动释放池,您可以在需要时耗尽该池。

关于objective-c - 强制释放自动释放对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878776/

相关文章:

python - 使用urllib2时如何解决Python内存泄漏?

java - 使用 StaticClass.staticValue 后是否保留或处置静态类

iphone - 如何使用 NSUserDefaults 为应用程序创建自动登录设置

ios - 为资源 iOS 指定横向图像

ios - 使用 iPhone X 的安全区域指南计算 UIView 的高度

javascript - observableArray 和 foreach 绑定(bind)的内存泄漏

javascript - 使用新的Image()时javascript中的内存泄漏

ios - 按升序对数组进行排序并删除 objective-c 中的重复值

ios - 带有 TextView 或标签的更多和更少按钮

c++ - 我是否需要对 C++ 中的每个 new 使用 delete?