ios nslog 例子_iOS 典型内存泄露案例 - zhenshan2013的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

本文通过一个iOS应用中加密接口的例子,展示了如何使用Instrument的Leak工具发现内存泄露,并详细分析了内存泄露的原因。在加密和解密接口中,由于out变量的不当使用导致内存未被正确释放。解决方案是将加密和解密过程整合,避免不必要的retain计数增加,从而消除内存泄露。
摘要由CSDN通过智能技术生成

最近进行iOS 安全黑匣子的测试,在Demo中通过不断的点击调加密接口,同时通过苹果自带instrument的leak工具监控,发现典型的内存泄漏,监控图如下:

上图中红色的部分表示该操作触发的代码有内存泄漏的可能,于是拿出源代码来研究一番,源代码如下:

//加密接口

-(IBAction)encrypt:(id)sender {

out =nil;

NSString *text = @"1374112539taobao://?ssoType=AuthorizeApplicationPrefix&appkey=1234&appName=SSO Demo&urlSchemes=ssodemo://&t=13741125391374112539";

NSData *inputData = [text dataUsingEncoding:NSUTF8StringEncoding];

out = [[[TBSecretMgr sharedInstance] encrypt:inputData]retain];

NSString *test =[[NSString alloc] initWithData:out encoding:NSUTF8StringEncoding];

NSLog(@"encrypt:%@",test);

[test release];}

//解密接口

- (IBAction)deEncrypt:(id)sender {

NSData *deEncryptOut = [[TBSecretMgr sharedInstance] decrypt:out

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值