博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进击的Objective-C------------内存
阅读量:4501 次
发布时间:2019-06-08

本文共 1170 字,大约阅读时间需要 3 分钟。

1.属性的内部实现原理:
assign
retain
copy
2.dealloc释放实例变量
dealloc 的方法 是为了setter方法里面 其实没有释放的实例变量
- (void)dealloc{
    [_name release];
    [_gender release];
    [super dealloc];}
3.便利构造器方法
代码:
+ (instancetype)personWithName:(NSString *)name age:(NSInteger)age
gender:(NSString *)gender{
    Person *p = [[Person alloc]initWithName:name age:age gender:gender];
//    [p release];// 写在上面再return,p变成了野指针
      return [p autorelease];// BingGo正解 MRC
//    [p release];// 写在下面,先return,内存泄漏}
4.collection内存管理
1⃣️:
Person *p1 = [[Person alloc]init];
NSMutableArray *mArr1 =[NSMutableArray array];
 // 将对象加入容器中
[mArr1 addObject:p1];
// p1 会被retain
NSLog(@"%lu",[p1 retainCount]);
2⃣️:
        // 将对象移除容器
         [mArr1 removeObject:p1];
        // p1 会被release
        NSLog(@"%lu",[p1 retainCount]);
        [p1 release];
        p1 = nil;
5多态:父类指针可以指向子类对象
NSString *str = [[NSMutableString alloc]init];// 子类对象,父类指针可以指向
        NSLog(@"%@",[str className]);
        // 在编译时 NSString
        // 在运行时 NSMutableSting
        // NSCFString
?意:
( 1 ):
/* 与ARC相比多了.m中的
        1⃣️:- (void)dealloc{
        [_name release];
        [_num release];
        [super dealloc];}
        和main.m中的
        2⃣️:[s1 release];
        [s2 release];
        s1 = nil;
        s2 = nil;*/
(2):
NSMutableString *ms = @"123".mutableCopy;

转载于:https://www.cnblogs.com/sharkHZ/p/4984002.html

你可能感兴趣的文章
Linux:xargs命令详解
查看>>
Flex 布局教程:语法篇
查看>>
明天你好
查看>>
Spring 分散装配
查看>>
漫话爬取
查看>>
sublime js插件
查看>>
C# 添加,修改,删除Xml节点
查看>>
float浮点数的四舍五入
查看>>
QQ消息记录、接收文件、图片、拍照照片等保存位置
查看>>
IOC与AOP介绍
查看>>
关于求最大公约数
查看>>
Git常用命令学习总结
查看>>
【转载】C#通过Rows.Count属性获取总行数
查看>>
【转载】通过百度站长平台查看网站搜索流量及关键字
查看>>
【转载】Visual Studio2017如何打包发布Winform窗体程序
查看>>
【转载】通过搜狗站长平台手动向搜狗搜索提交死链
查看>>
【转载】通过搜狗站长平台手动向搜狗搜索提交文章加快收录
查看>>
【转载】通过百度站长平台提交网站死链
查看>>
【转载】通过搜狗站长平台提交网站域名变更后的文章地址
查看>>
【转载】Visual Studio2017中如何设置解决方案中的某个项目为启动项目
查看>>