I created a simple program to test the retain/release methods in Objective-C memory management. As I understand of ObjC memory management, I expect that a object with retain count = 1 on which I callrelease get the retain count decremented to zero and then released. But this test program show that after the first release I still get retain count = 1:
// TestClass.h
#import <Cocoa/Cocoa.h>
@interface TestClass : NSObject {
}
@end
// TestClass.m
#import "TestClass.h"
@implementation TestClass
@end
// RetainRelease.m
#import <Foundation/Foundation.h>
#include "TestClass.h"
void dumpRetain(id o);
int main (int argc, const char * argv[]) {
TestClass *s = [[TestClass alloc] init];
dumpRetain(s);
[s release];
dumpRetain(s);
}
2010-08-13 17:42:45.489 RetainRelease[20933:a0f] NSString - retain count=1
2010-08-13 17:42:45.491 RetainRelease[20933:a0f] NSString - retain count=1
答案:
it's implemented as "when the object is released with a retainCount of 1, it's deallocated", because there's no need to ever decrement it to 0. It's an implementation optimization.
分享到:
相关推荐
1. **依赖升级**:Spring Boot 2.3.8.RELEASE包含了对各种依赖库的更新,如Spring Framework、Spring Data、Spring Security等,确保了最新的稳定性和性能优化。 2. **健康检查增强**:新增了更丰富的健康检查指标...
windows编译的geos库,版本:geos3.6.5 包含releas、debug版本
1. 自动工作负载存储库(Automatic Workload Repository,AWR):AWR收集关于数据库性能的详细信息,为性能分析和调优提供基础数据。在11g中,AWR的报告和分析功能进一步增强,可以帮助用户更准确地定位性能瓶颈。 ...
Spring Data Commons是Spring框架的一个重要组成部分,它为Spring Data项目提供了一套通用的基础设施,简化了与各种数据存储进行交互的过程。这个1.13.0.RELEASE版本是该模块的一个稳定版本,包含了对多种数据访问...
leensa-1.0.4-foss-releas.apk
1. **访问MES功能的先决条件**:这包括确保所有必要的系统配置、用户认证和权限设置已经到位。 2. **设置权限**:管理员需为用户和用户组设置访问和操作的权限范围。 3. **创建组**:定义用户组,便于管理用户权限...
com.lingyue.zebraloan-v4.6.0-ZEBRA_CAMPAIGN-releas.apk
从标题和描述中,我们可以了解到这是一份关于 Oracle Solaris 8 的发行说明更新,版本号为 1/01,适用于 Intel 平台。release notes 是一个对操作系统的更新说明,详细介绍了该版本的新特性、改进和 bug 修复等内容...
SpringLoaded是Spring框架中的一个强大工具,其1.2.4.RELEASE版本是为开发人员提供高效Spring应用程序热部署功能的重要组件。在Java开发环境中,每当代码发生变化,传统方式需要重启服务器才能看到更新效果,这无疑...
1. **代码生成**:它可以帮助快速生成Maven或Gradle项目的结构,包括实体类、控制器、视图以及服务层代码。 2. **数据库集成**:Spring Roo支持多种数据库,如MySQL、Oracle等,可以自动生成数据访问对象(DAO)和...
1. **数据同步**:Oracle ADT允许用户在桌面应用和Oracle EBS之间双向同步数据,如导入导出表单数据、维护客户信息、更新库存状态等。 2. **自定义集成**:用户可以创建自定义的数据集成方案,满足特定业务需求,...
本指南的作者包括Charles Colt、Melody Yang、Kellie Briesach、Carol Fager-Higgins和Robert Geiwitz,他们都是Oracle领域的专家,为读者提供了深入的技术见解和实践指导。文档内容可能涵盖安装、配置、集成、性能...
5. **升级路径**:为已使用旧版本OFA的用户提供升级策略和步骤,包括数据迁移、版本兼容性检查以及升级后的测试和验证。 6. **故障排查**:包含了常见问题的解决方案和错误代码参考,帮助用户解决安装或使用过程中...
1. **系统要求**:确保你的硬件和操作系统满足Oracle R Enterprise的最低需求,包括内存、处理器速度、磁盘空间等。对于不同平台(Windows、Linux、Solaris、AIX),这些要求可能有所不同。 2. **软件包下载**:从...
《Oracle Database Installation and Administration Guide 11g Release 2 (11.2) for Fujitsu BS2000/OSD》是Oracle公司为Fujitsu BS2000/OSD操作系统平台提供的数据库安装与管理指南,适用于版本11.2。该文档主要...
1. **系统需求**:在开始安装前,用户需要了解TimesTen对硬件(如CPU、内存和磁盘空间)以及操作系统(如Windows、Linux或Unix)的具体要求,确保满足最小配置以保证数据库的正常运行。 2. **安装过程**:指南详细...
Oracle Solaris 8是Sun Microsystems(后被Oracle公司收购)发布的一个操作系统版本,专为SPARC平台设计。这个系统在2000年10月发布了Update-80,是Solaris 8系列的重要更新。Oracle Solaris 8 SPARC Platform ...
Oracle8i Application Developer’s Guide - Advanced Queuing Release 2 ...该指南涵盖了高级队列的概念、架构、配置、管理、安全性、性能调整和故障排除等方面的知识点,为应用程序开发者提供了一个系统的学习平台。