Objective-C学习笔记(@property,id,instancetype)4.9

**1.增强@property:**自动生成getter和setter方法的声明和实现。

原理:①自动声明私有属性②自动生成getter和setter方法的声明和实现。

@property 数据类型 变量名

注意变量名要去掉下划线,如果同时重写getter和setter那么不回自动声明私有属性。

**2.@synthesize:**自动生成getter和setter的实现。

@synthesize 变量名;

**3.弱语言:**编译器在检查语法时不严格

**4.静态类型:**指针指向的是本类对象。

**5.动态类型:**指针指向的不是本类对象,可能是子类。即父类指针指向子类对象。

**6.编译检查:**能不能调用看指针的类型。

**7.编译检查:**能不能调用看对象里有没有这个方法。

**8.id:**万能指针,声明不需要加*,可以指向任意的OC对象,

**9.id和NSObject的区别:**NSObject会做编译检查,id只能调用对象的方法,不能使用点语法。

**11.id和instancetype的区别:**instancetype只能作为方法返回值,id可以是指针变量、参数、返回值。instancetype有类型,代表当前类的对象。id仅是一个指针,是地址。

12.instancetype:方法返回当前类的对象。创建用self,返回用instacetype。

**13.respondsToSelector:**判断当前对象是否有这个方法。

**isKindOfClass:**判断当前对象是不是指定类的实例。

**isMemberOfClass:**判断当前对象是否为指定类的实例,不包括子类。

**isSubclassOfClass:**判断当前类是否为另一个类的子类。

14.new是alloc和init组合,alloc是类方法,创建这个类的一个对象。init是对象方法,初始化对象,为对象的属性赋默认值。[Person new]=[ [ Person alloc ] init ]。

init:如果是基本数据类型就是0,如果是C指针就是NULL,OC指针就是nil,

重写init规范:-(instancetype)init{

if(self = [super init]){

//赋值

}

}

如果要传参方法名为initwith×××

相关推荐
草莓熊Lotso15 分钟前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day2
c语言·经验分享·笔记·其他
针不戳2022092623 分钟前
PFC是什么
嵌入式硬件·学习·硬件工程
文火冰糖的硅基工坊1 小时前
[激光原理与应用-226]:机械 - 如何学习3D图设计
学习·3d·系统架构·公司·机械·结构
firshman_start2 小时前
SQL注入学习笔记
sql·学习
草莓熊Lotso2 小时前
《吃透 C++ 类和对象(上):封装、实例化与 this 指针详解》
开发语言·c++·经验分享·笔记·其他
鸢栀w3 小时前
前端css学习笔记3:伪类选择器与伪元素选择器
前端·css·笔记·学习·尚硅谷网课
alexander0684 小时前
Django路由学习笔记
笔记·学习·django
_hermit:6 小时前
【从零开始java学习|第三篇】变量与数据类型的关联
java·学习
知识分享小能手12 小时前
Vue3 学习教程,从入门到精通,Vue 3 + Tailwind CSS 全面知识点与案例详解(31)
前端·javascript·css·vue.js·学习·typescript·vue3
茴香豆的茴113 小时前
转码刷 LeetCode 笔记[2]:203. 移除链表元素(python)
笔记·leetcode·链表