ios - iOS 中的所有对象是否都自动添加到自动释放池中?

标签 ios autorelease

iOS中的所有对象都是自动加入autorelease pool的吗?什么时候ARC?如果没有,哪一个会被添加,哪个不会被添加?

例如:

{
  NSString *str = [[NSString alloc] init];
  NSString *str2 = [NSString string];
}

+ (NSString *)string {
  return [[NSString alloc] init];
}

str2 将被添加到自动释放池中,因为它是通过名为 'copy/mutableCopy/alloc/new' 的方法创建的。所以它不是自己创造的。但我不知道 str 是否会被添加,为什么?

最佳答案

ARC 不保证哪些对象被添加到自动释放池中,哪些对象没有。您的示例中的对象都没有很可能从未添加到 ARC 下的自动释放池中。

关于ios - iOS 中的所有对象是否都自动添加到自动释放池中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42944660/

相关文章:

objective-c - 我可以提前释放自动释放对象吗?

objective-c - 内存管理、自动释放、永久堆的问题在 iOS 上有时是 250+ kb

objective-c - Objective C 自动释放

iOS:如何在操作大型 NSString 实例时避免自动释放副本?

ios - 使用 Firebase 从 iOS 设备上传图像 - objective-c

ios - 无法创建用作带有通配符标识符的 iOS 应用程序配置文件的应用程序包 ID 的显式 AppID

ios - 更改窗口的 rootViewController 的内存管理

objective-c - iOS 企业应用的奇怪问题

xcode - 为什么我的代码会泄漏以及如何正确使用自动释放..? [ cocoa /xcode]

ios - iOS 上的 UIBezierPath 操作