`
woainike
  • 浏览: 79796 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

无聊的测试。release后还需要removeallobjects?

 
阅读更多

#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 Framework 4.1.6.RELEASE 是一个重要的版本,它是Spring框架发展史上的一个重要里程碑。这个版本在2015年发布,为开发者提供了稳定、高性能和丰富的特性集,以便构建高质量的企业级Java应用程序。以下是对这...

    Qt Release 崩溃测试 demo

    10. **持续集成(CI)**:结合持续集成系统,自动进行Release版本的构建和测试,确保每次代码更改后,程序的稳定性都能得到及时验证。 最后,对于压缩包中的“QtDbgTest”文件,这可能是用于调试或测试的工具或脚本。...

    rpmforge-release-0.5.3-1.el6.rf.x86_64

    rpmforge是Dag、Dries 和其它软件包的组合。它们为 CentOS 提供了超过10000个软件包。rpmforge不是redhat Linux产品或 CentOS 的组成部分,但它是为这些 Linux 套件而设计的。

    Release方式常见问题

    因此,我们至少需要每周进行一次 Release 版本的测试,以便在紧凑的开发周期内节省潜在的排故时间。 规则 2: 不要随意删除 Release 版本需要的代码 在编译 Release 版本时,编译器会主动排除在代码中存在的宏,...

    JetbrainsCrack-3.1-release-enc.jarJetbrainsCrack-3.1-release-enc

    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...

    EMQ2.0性能测试报告Release2.0.5

    EMQPLUS企业版是基于Erlang/OTP开发的MQTT消息服务器,具备百万级高并发、毫秒级低时延、分布式集群和高可靠性等特性,适用物联网、车联网、智能硬件和移动消息等场景。 目前已广泛应用在全球市场,包括中国、北美、...

    delphi debug release区别

    - **Release模式**:Release模式则倾向于动态链接到运行时库,这样可以减少程序的体积,但需要目标系统上安装相应的库。 4. **异常处理** - **Debug模式**:在Debug模式下,异常处理更为详细,可以提供更多的错误...

    Web V3.2 release测试总结1

    Web V3.2 release的测试工作是对一系列产品的全面评估,包括JHAppform、JHCodesign、JHComeeting、JHSecurity和JHInsight等,还有JHDam、JHDS和JHApp。测试过程覆盖了从基础功能到高级集成,涉及到多个定制项目的...

    app-release

    在IT行业中,"app-release"通常指的是...总的来说,"app-release"涉及Android应用的发布流程,包括代码优化、签名、打包APK、测试、发布到应用市场以及后续的维护和更新。这些环节对于确保应用质量和用户体验至关重要。

    app-release.apk 测试

    app-release.apk 测试

    releasenotes.doc

    本文档,"EEMBC Version 1.1 ReleasePorting Guide and Release Notes" 是一份针对EEMBC基准测试的移植指南和版本发布说明,旨在帮助开发者将EEMBC测试套件适应不同的硬件和软件平台。 **免责声明与版权** 在开始...

    nose Documentation Release 1.2.1

    标题《nose Documentation Release 1.2.1》指的是这是关于nose测试框架的文档,版本为1.2.1。nose是一个Python的测试框架,它简化了Python代码的测试过程,使得开发者可以更容易地编写和运行测试用例。 描述中提到...

    googletest-release-1.12.1.tar.gz

    此外,gtest还支持参数化测试,允许同一测试用例针对不同的输入数据运行,以及可以自定义测试事件监听器来扩展其功能。 在`googletest-release-1.12.1`目录中,你可以找到以下关键组件: 1. `include/gtest`: 这个...

    Qt mingw release版异常结束 crash信息捕捉和跟踪(含测试代码)

    程序在debug可以正常运行,但是在release版后异常结束,系统又没有提供任何信息情况下,或者程序发布后在客户手中出现异常崩溃,但自己测试又不能复现问题,要是能捕获到异常时相关信息就很好定位问题了。...

    CCS中Debug与Release的区别

    相比之下,Release模式用于软件开发的后期阶段,当代码经过充分测试并准备部署到目标设备时。在这一模式下,编译器的目标是生成尽可能小且运行效率高的可执行文件。这意味着编译器会进行深度优化,包括但不限于函数...

    lsb-release-1.4.tar.gz

    - 系统更新:虽然 `lsb-release` 在 CentOS 6.5 中是必要的,但请注意,随着 CentOS 版本的升级,可能需要更新 `lsb-release` 到最新版本以保持兼容性。 - 安全性:保持 `lsb-release` 更新有助于防止潜在的安全...

    spring 3.2.4.RELEASE jar包

    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-...

    googletest-release-1.10.0.tar.gz

    总之,`googletest-release-1.10.0.tar.gz` 提供了一个强大的 C++ 单元测试框架,它不仅有助于确保代码质量,还支持源码学习,帮助开发者提升测试技巧和代码可维护性。无论是初学者还是经验丰富的 C++ 开发者,都...

    vc Release版本调试

    完成编译器设置后,还需要对链接器进行相应的配置: - 转到`Linker`选项卡中的`General`部分。 - 查找`Debug Info`选项,并将其设置为`Generate Debug Info`。这一步确保了链接器也会生成调试所需的信息。 - 这样...

Global site tag (gtag.js) - Google Analytics