ios - Xcode 中的内存管理

标签 ios objective-c xcode

我尝试在 Xcode 中分配和释放可变数组

NSMutableArray *inventory = [[NSMutableArray alloc] init];

[inventory addObject:@"one"];

[inventory release];

有没有人帮我解释一下,为什么“库存”释放后,它仍然存储1个对象?

最佳答案

假设您在没有自动引用计数 (ARC) 的情况下工作:

当您释放一个对象时,这会将对象之前占用的内存标记为空闲。但是,它不一定会立即销毁该内存中的内容。

如果您尝试(不正确地)访问数组内存地址中的内容,您很可能会发现数组成员仍然在那里。但请注意,这并不安全,数组及其成员可以(并且将会)随时被覆盖。

您应该将 ARC 用于任何生产代码,以避免内存管理不善的危险。效果很好。

关于ios - Xcode 中的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31352921/

相关文章:

ios - 请求用户允许在 iOS 8 中接收 UILocalNotifications

ios - 基于进度值的 UIColor 过渡

ios - UITableView 行动画持续时间和完成回调

iOS 内存管理与自动释放

ios - UIWebview 键盘返回键按下 ios 7

ios - 一个类似于 UIImagePickerController 的 Picker Controller 来选择文件 ios 7

objective-c - 在 swift 框架中使用 j2objc(不是静态库)

objective-c - 从 NSObject 继承是如何工作的?

swift - 在 SwiftUI 中使用 ASWebAuthentication

ios - 如何在 Xcode 中为 pdf Assets 设置色调颜色?