oc31--new实现
2024-08-26 07:06:43
//
// main.m
// new方法实现原理 #import <Foundation/Foundation.h>
#import "Person.h" int main(int argc, const char * argv[]) { /*
new做了三件事情
1.开辟存储空间 + alloc 方法
2.初始化所有的属性(成员变量) - init 方法
3.返回对象的地址
*/
Person *p = [Person new]; // alloc做了什么事情: 1.开辟存储空间(alloc都是在堆里面创建的区域,) 2.将所有的属性设置为0 3.返回当前实例对象的地址
Person *p1 = [Person alloc];
// 1.初始化成员变量, 但是默认情况下init的实现是什么都没有做 2.返回初始化后的实例对象地址
Person *p2 = [p1 init];
// [[Person alloc] init]; // 注意: alloc返回的地址, 和init返回的地址是同一个地址
NSLog(@"p1 = %p, p2 = %p", p1, p2); //p1 = 0x100202630, p2 = 0x100202630 // [[Person alloc] init]; == [Person new];
// 建议大家以后创建一个对象都使用 alloc init, 这样可以统一编码格式
Person *p3 = [[Person alloc] init];
return ;
}
最新文章
- lydsy 2600(二分+中位数前缀和)米仓
- 触屏touchstart 与 click
- linux小程序--cmatrix
- Web service project中导入的库JAX-RS(Java EE 6.0新产品)
- 【leetcode】155 - Min Stack
- 【leetcode】Trapping Rain Water(hard)
- [iOS基础控件 - 4.5] 猜图游戏
- MongoDB学习教程(3)-常用命令
- Java继承--子类的实例化过程
- JMeter中BeanShell的实际应用
- Swift学习笔记8--Optional Chaining
- Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域
- Appium appium 安装不了
- H5笔记周记
- 求和(NOIP2015)
- vue组件实现查看大图效果
- Linux下查看文档指令
- UVAlive5713 Qin Shi Huang&#39;s National Road System【次小生成树】【DP】
- 11 java 线程池 使用实例
- Objective-C代码学习大纲(4)
热门文章
- 表格对象的获取和更改(原生js)
- 深入浅出的 SQL Server 查询优化
- CSS——盒子居中显示
- IIS中实现http自动转换到https
- [Windows Server 2012] 安装PHP+MySQL方法
- BZOJ 4285 使者 (CDQ分治+dfs序)
- python 函数编写指南
- copy contents of file with variable number in Matlab
- Huawei-R&;S-网络工程师实验笔记20190608-VLAN划分基础(基于端口、MAC地址、子网地址、协议)
- Java基础学习总结(42)——Log4j 2使用教程