KVC、KVO和谓词

来源:互联网 发布:淘宝删除未发货订单 编辑:程序博客网 时间:2024/05/29 03:34

KVC

  1.key value coding(键值编码)

  2.是非正式协议(NSObject的类别)

  3.原理:通过key(NSString*)来查找属性,若无,查找成员变量,调用set和get方法

  4.keyPath 

KVO

  key value observer(只有通过属性或KVC方法才可以触发KVO)

  基于两个对象间的监听通信,在被观察者中实现observer方法

  1.基于KVC

  2.一个对象要关联另一个对象的每个值的变化,就是用KVO(应用场景)

谓词

谓词NSPredicate

  • // 谓词中关系运算符 > >= == < <= !=
  • // 谓词中and或&&代表与逻辑,or或||代表或逻辑
  • // 4. 谓词中字符串相关的操作
  • // BEGINSWITH、ENDSWITH、CONTAINS [c]不区分大小写 [d]不区分发音符号,即没有重音符号 [cd]既不区分大小写,也不区分发音符号
  • // LIKE *代表0个或多个字符 LIKE[cd]
  • // 6. 谓词中正则表达式的使用:                     - MATCHES
  •                     - // >>> 占位符
  •                     - // 1. 键路径 %K %@
  •                     - // 2. 格式化字符串中包含变量 $
  •                     - // 格式化字符串中含有变量的目的->避免硬编码
  •                     ,可以在程序中操作

  - regex 正则表达式:(使用matches)

                 ^代表以后面的字符串开始的(表示反向引用)

                 $代表以后面的字符串结束的

                 .占位符,代表任意字符

                 +至少一个字符,限定前面的字符

                 ()表示一次匹配

                 | 表示选择。起到二选一的作用

                 ?一个占位符,修饰前面字符出现次数

                 *任意字符

                 {}限定次数


  - 通配符:(oc中加上LIKE )

        *代表一个或多个字符

        ?代表单个字符

        []和问号的区别在于可以定义区间[1-9]或者[1234],代表一个字符

        [!]和[]的区别在于取得的字符不是在后面的区间

        {}列表

0 0
原创粉丝点击