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

本文详细介绍了Objective-C中的@property自动生成getter和setter、@synthesize的用法,以及弱语言特性、静态和动态类型的区别,还涵盖了编译检查、id、NSObject和instancetype的特性以及new和init方法的使用规则。
摘要由CSDN通过智能技术生成

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×××

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值