#import <UIKit/UIKit.h>
@interface ViewController : UIViewController{
NSMutableArray *_mArray;
NSMutableArray *temp;
}
@property(nonatomic ,retain)NSMutableArray *mArray;
@end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize mArray = _mArray;
-(void)reResultRetainCount{
static int i = 1;
NSLog(@"get %d _mArray retain count %d",i++,[_mArray retainCount]);
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// [self reResultRetainCount];
//
// _mArray = [[NSMutableArray alloc] init];
//
// [self reResultRetainCount];
//
// [_mArray release];
[self reResultRetainCount];
_mArray = [[NSMutableArray alloc] init];
[self reResultRetainCount];
[self.mArray addObject:@"123"];
[self.mArray addObject:@"456"];
[self.mArray addObject:@"789"];
/*
NSLog(@"%@",self.mArray);
[_mArray removeAllObjects];
NSLog(@"%@",self.mArray);
*/
[self reResultRetainCount];
NSLog(@"%@",_mArray);
temp = [_mArray copy];
[_mArray release];
[self reResultRetainCount];
if (temp) {
//NSLog(@"temp");
NSLog(@"%@",temp);
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//
//-(void)setMArray:(NSMutableArray *)mArray{
//
// if (_mArray != mArray) {
//
// //_mArray = mArray;
//
// [_mArray release];
// _mArray = [mArray retain];
//
// }
//
// NSLog(@" set mArray retain count %d",[mArray retainCount] );
//
//}
@end
总结,不需要。在跑道dealloc 里面去释放的时候,再去removeallobjects。
最多,加上 currentObjets = nil这句话。
安全释放。合理分配。
共享内存,不要随便放。
和同事辩论,结果,V字手势。
分享到:
相关推荐
Spring Framework 4.1.6.RELEASE 是一个重要的版本,它是Spring框架发展史上的一个重要里程碑。这个版本在2015年发布,为开发者提供了稳定、高性能和丰富的特性集,以便构建高质量的企业级Java应用程序。以下是对这...
10. **持续集成(CI)**:结合持续集成系统,自动进行Release版本的构建和测试,确保每次代码更改后,程序的稳定性都能得到及时验证。 最后,对于压缩包中的“QtDbgTest”文件,这可能是用于调试或测试的工具或脚本。...
rpmforge是Dag、Dries 和其它软件包的组合。它们为 CentOS 提供了超过10000个软件包。rpmforge不是redhat Linux产品或 CentOS 的组成部分,但它是为这些 Linux 套件而设计的。
因此,我们至少需要每周进行一次 Release 版本的测试,以便在紧凑的开发周期内节省潜在的排故时间。 规则 2: 不要随意删除 Release 版本需要的代码 在编译 Release 版本时,编译器会主动排除在代码中存在的宏,...
JetbrainsCrack-3.1-release-enc.jarJetbrainsCrack-3.1-release-enc.jarJetbrainsCrack-3.1-release-enc.jarJetbrainsCrack-3.1-release-enc.jarJetbrainsCrack-3.1-release-enc.jarJetbrainsCrack-3.1-release-enc...
EMQPLUS企业版是基于Erlang/OTP开发的MQTT消息服务器,具备百万级高并发、毫秒级低时延、分布式集群和高可靠性等特性,适用物联网、车联网、智能硬件和移动消息等场景。 目前已广泛应用在全球市场,包括中国、北美、...
Web V3.2 release的测试工作是对一系列产品的全面评估,包括JHAppform、JHCodesign、JHComeeting、JHSecurity和JHInsight等,还有JHDam、JHDS和JHApp。测试过程覆盖了从基础功能到高级集成,涉及到多个定制项目的...
app-release.apk 测试
在IT行业中,"app-release"通常指的是...总的来说,"app-release"涉及Android应用的发布流程,包括代码优化、签名、打包APK、测试、发布到应用市场以及后续的维护和更新。这些环节对于确保应用质量和用户体验至关重要。
spring-context-3.2.4.RELEASE.jar spring-core-3.2.4.RELEASE.jar spring-beans-3.2.4.RELEASE.jar spring-test-3.2.4.RELEASE.jar spring-web-3.2.4.RELEASE.jar spring-aop-3.2.4.RELEASE.jar spring-webmvc-...
同时,`@Transactional`注解可以开启事务,测试结束后自动回滚,避免对数据库造成影响。 5. **测试报告:** Spring Test支持JUnit和TestNG的测试报告生成,通过自定义监听器,可以定制测试输出,满足不同项目的...
在实际操作中,解压“Release20131004.zip”后,我们通常会执行以下步骤: 1. 检查“Release20131004.txt”以获取更新详情。 2. 如果是源代码发布,开发者会编译并测试新版本。 3. 对于二进制发布,用户可能需要运行...
3. **测试**:在发布前,务必在多款设备上进行充分的测试,确保Release版本的稳定性和兼容性。 总之,"AndroidTool_Release.zip"是一个实用的工具集,它简化了Android应用的Release流程,使开发者能更专注于应用的...
在4.1.9.RELEASE中,对Mockito等第三方测试库的集成更加紧密,使得编写测试用例变得更加简单高效。 6. **Maven和Gradle集成**:4.1.9.RELEASE版本可以轻松地与构建工具Maven或Gradle集成,提供了一组完整的Maven...
Release版本不仅包含了优化和调试后的代码,还包含了必要的签名和优化,以确保应用的安全性和性能。以下是详细的过程: 一、设置Release构建类型 在Android Studio中,打开项目后,导航至`build.gradle(Module: app...
在C#编程中,开发完成后通常会生成两种类型的项目输出:Debug和Release。这两个目录分别对应不同的编译配置,用于满足不同的开发需求。本话题主要关注Release目录,因为它是最终面向用户或部署到生产环境的版本。在...
为了在项目中使用Spring 3.0.5.RELEASE,你需要将这些JAR添加到项目的类路径中,或者如果使用Maven或Gradle等构建工具,可以通过指定依赖来自动下载和管理这些依赖。 总的来说,Spring Framework 3.0.5.RELEASE是一...
在确保所有DLL文件都为Release版后,可以有效地优化程序性能并降低安全风险。当引用第三方组件时,务必确认它们的版本,以免在生产环境中引入不必要的问题。对于.NET开发,可以使用Visual Studio的项目属性来设置...
Eclipse CDT Debug 转 Release 版本的配置需要我们注意多个方面,包括依赖项的添加、静态库项目的配置、头文件和静态库的配置、优化等。只有正确地配置这些选项,才能确保项目的正确编译、调试和发布。
- **Release模式**:Release模式则倾向于动态链接到运行时库,这样可以减少程序的体积,但需要目标系统上安装相应的库。 4. **异常处理** - **Debug模式**:在Debug模式下,异常处理更为详细,可以提供更多的错误...