iOS-模糊查询

前言:

为了巩固FMDB,就来找个简单的Demo学习一下。不好找工作啊,就学习吧,没应聘的消遣吧。

  • 简单介绍:
    模糊查询:是指确定给定的字符串是否与指定的模式匹配。
    模式可以包含常规字符和通配符字符。
Demo解析
一、创建项目/配置环境/搭建主框架
  • iOS-模糊查询_第1张图片
    创建项目/配置环境
二、搭建UI
  • --上部分


    iOS-模糊查询_第2张图片
    上部分

    --下部分


    iOS-模糊查询_第3张图片
    下部分

    当前效果展示:
    iOS-模糊查询_第4张图片
    当前效果展示
三、创建扩展类/并封装数据库管理工具
1.创建扩展类
    首先,声明一个获取汉字转换成拼音的方法
    其次,将获取的中文转换成可变字符并利用CFStringTransform转换成带声调的字符串
    再次,再转换成不带声调的拼音,并用@" "空格切割成数组。
    最后,再完成获取汉字转成拼音字符串  通讯录模糊搜索 支持拼音检索 首字母 全拼 汉字 搜索功能

1.1声明方法


iOS-模糊查询_第5张图片
声明方法

1.2方法实现


iOS-模糊查询_第6张图片
方法实现
2.创建工具类

如图1:


iOS-模糊查询_第7张图片
声明

如图2:


iOS-模糊查询_第8张图片
单例

如图3:
iOS-模糊查询_第9张图片
创建表和插入

如图4:


iOS-模糊查询_第10张图片
查询
四、收尾

如图1:


iOS-模糊查询_第11张图片
数据

如图2:


iOS-模糊查询_第12张图片
搜索
五、最终显示效果
iOS-模糊查询_第13张图片
最终显示效果
  • 知识点小结:
    1、将字符串切割成数组 componentsSeparatedByString
    2、appendString 附加的是一个已经完整的字符串。
    3、appendFormat 附加的是按指定格式、指定参数的字符串。
    4、@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。
       这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作用。
       一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。
    5、大概意思归结出来就是两点: 
       (1).__block对象在block中是可以被修改、重新赋值的。
        (2).__block对象在block中不会被block强引用一次,从而不会出现循环引用问题。
        (3).__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
    

    有点乱~~~ಥ_ಥ

你可能感兴趣的:(iOS-模糊查询)