ocjia_qiang_04

OC加强04

协议(protocol) 关键符号<>
  • 是专门用来写方法声明的,协议内不能写属性(不是类),可以写@proterty和分类中@property一样.
  • 遵守协议的类就拥有了这个协议的所有方法声明,而不用自己再区声明.(遵守你得先导入这个协议文件),@required(默认)规范是必须写这个方法的实现,不写就会报警告.@optional(可选的),实现可以选择性写.
  • 协议可以多遵守* <协议1,协议2> *
  • NSObject协议基协议(协议和类名可以相同).规范:自定义协议要直接或间接遵守NSObject基协议.
  • 协议可以继承.子协议拥有父协议所有的方法的声明.
  • 协议的类型限制:

    • id< Protocol1 ,Protocol2> *p1—–>指针指向的对象要遵守这个协议(类中遵守),可多遵守协议.
    • 作用:保证这对象一定有这个方法.
代理模式的引入
  • 代理对象的理解:帮助当前对象,完成某件事情.
    • 作用:传递多个数据.
    • 步骤:1,构造协议,写方法声明.2,构建代理对象类,写协议的实现.3,对象内有对象属性遵守那个构造协议.4,给代理属性一个对象实体,将他赋值给对象.
    • 简单的说,就是对象A中有id类型的对象遵守协议C,对象B是遵守协议C的,对象A通过对象B做事情,甚至返回数据,最后还要给id这个对象属性赋值一个对象B实体.

代理属性属性名叫delegate,类型为id.

NSString
  • NSString *str = nil ————->nil

    NSString *str1 = [NSString new];–>”“(空)

NSString的恒定性
        NSString *str = [NSString new];--->堆区
        NSString *str1 = @"jack";--------->常量区

无法更改字符串内容.创建字符串对象如果有会直接给地址,没有会重新创建.

  • nullable代表返回的对象有可能是nil.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值