OC9_字符串的内存管理
2024-10-13 13:24:01
//
// main.m
// OC9_字符串的内存管理
//
// Created by zhangxueming on 15/6/18.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h> //字符串内存管理, retainCount的值可以不参考, 只需要遵守内存管理法则就行
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str1 = @"hello world";
NSLog(@"str1 retainCount = %li", str1.retainCount);
NSString *str2 = [NSString stringWithString:str1];
NSLog(@"str2 retainCount = %li", str2.retainCount);
NSString *str3 = [[NSString alloc] initWithString:str1];
NSLog(@"str3 retainCount = %li",str3.retainCount); NSLog(@"str1 = %p str2 = %p str3 = %p", str1, str2, str3);
[str3 release]; NSString *str4 = [str3 retain];
NSLog(@"str4 retainCount = %li", str4.retainCount);
[str4 release]; NSString *str5 = [str4 copy];
NSLog(@"str5 retainCount = %li", str5.retainCount);
NSLog(@"str5 = %p str4 = %p", str5, str4);
[str5 release]; NSMutableString *mulStr1 = [[NSMutableString alloc] initWithString:str5];
NSLog(@"mulStr1 retainCount = %li", mulStr1.retainCount);
NSLog(@"mulStr1 = %p str5 = %p", mulStr1, str5); NSMutableString *mulStr2 = [mulStr1 retain];
NSLog(@"mulStr2 retainCount = %li", mulStr2.retainCount); NSString *str6 = [[NSString alloc] initWithString:mulStr1];
NSLog(@"str6 retainCount = %li", str6.retainCount); NSString *str7 = [[NSString alloc] init];//@""
NSLog(@"str7 retainCount = %li", str7.retainCount); NSLog(@"str6 = %p str7 = %p", str6, str7); NSString *str8 = [str7 stringByAppendingString:@"qian feng"]; NSLog(@"str8 retainCount = %li", str8.retainCount);
NSLog(@"str8 = %p", str8); [str6 release];
[str7 release];
[mulStr1 release];
[mulStr2 release];
}
return ;
}
最新文章
- 搭建自己的LAMP
- Service Broker应用(1):简介、同server不同DB间的数据传输
- 超简单的js数字验证
- 【USACO 1.3】Ski Course Design
- linux命令:tail
- Java基础—ClassLoader的理解
- Android 的自定义Spinner组件实现方式
- java实现字符串反转(原作有点错误,需要看下评论)
- PHP 中 const define 的区别
- ThinkPHP配置项(六)
- 【01-14】java ThreadLocal工具类
- springmvc权限拦截器
- PAT (Advanced Level) 1106. Lowest Price in Supply Chain (25)
- 云计算之路-阿里云上:节点 CPU 波动引发 docker swarm 集群故障
- bzoj 3048[Usaco2013 Jan]Cow Lineup 思想,乱搞 stl
- 从PRISM开始学WPF(四)Prism-Module-更新至Prism7.1
- 项目Alpha冲刺(2/10)
- 美国运营商推送假5G图标:用户当场蒙圈了
- Spring学习笔记--Spring简介
- Wed Jul 04 18:01:38 CST 2018 WARN: Establishing SSL connection without server&#39;s identity verification is not recommended
热门文章
- UVa540 Team Queue
- myeclipse 10创建maven项目
- sed命令查找<;media/msm_cam_sensor.h>;替换为";len_msm_cam_sensor.h";
- mongo批量更新
- Swift 3.0 的 open,public,internal,fileprivate,private 关键字
- iOS6 / iOS7 状态栏高度适配
- yii泛域名
- VBA Excel 单元格操作
- Qt Quick实现的疯狂算数游戏
- svm、经验风险最小化、vc维