iOS-模糊查询
http://blog.csdn.net/qq_33701006/article/details/51836914
版权声明:本文为博主原创文章,未经博主允许不得转载。
前言:
为了巩固FMDB,就来找个简单的Demo学习一下。不好找工作啊,就学习吧,没应聘的消遣吧。
- 简单介绍:
模糊查询:是指确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。
Demo解析
一、创建项目/配置环境/搭建主框架
- [详解]:当我们配置好应用环境,并且手动集成完FMDB之后,导入其依赖库libsqlite3.tbd。就来到AppDelegate中,进行应用框架的搭建。在AppDelegate中为显示主界面嵌入一个导航控制器,并显示。如图所示:
创建项目/配置环境二、搭建UI
- [详解]:创建一个UItableView和UISearchBar,分别添加到主View和tableView头视图上,并分别实现其所需的数据源方法和代理方法。如图所示:
--上部分
上部分--下部分
下部分当前效果展示:
当前效果展示三、创建扩展类/并封装数据库管理工具
- [详解]:创建一个获取汉字转成拼音字符串扩展类,同时封装一个数据库管理的工具类。
1.创建扩展类
首先,声明一个获取汉字转换成拼音的方法
其次,将获取的中文转换成可变字符并利用CFStringTransform转换成带声调的字符串
再次,再转换成不带声调的拼音,并用@" "空格切割成数组。
最后,再完成获取汉字转成拼音字符串 通讯录模糊搜索 支持拼音检索 首字母 全拼 汉字 搜索功能1.1声明方法
声明方法1.2方法实现
方法实现2.创建工具类
如图1:
声明如图2:
单例如图3:
创建表和插入如图4:
查询四、收尾
如图1:
数据如图2:
搜索五、最终显示效果
最终显示效果
知识点小结:
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-模糊查询的更多相关文章
- IOS开发数据库篇—SQLite模糊查询
IOS开发数据库篇—SQLite模糊查询 一.示例 说明:本文简单示例了SQLite的模糊查询 1.新建一个继承自NSObject的模型 该类中的代码: // // YYPerson.h // 03- ...
- IOS FMDB模糊查询
http://blog.sina.com.cn/s/blog_9630f1310101fx1d.html /查询记录 -(NSArray*)selectitemDream_desc:(JiemengS ...
- IOS-CoreData(增删改查、表关联、分页和模糊查询、多个数据库)
1>什么是CoreData Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数 ...
- Mybatis框架的模糊查询(多种写法)、删除、添加(四)
学习Mybatis这么多天,那么我给大家分享一下我的学习成果.从最基础的开始配置. 一.创建一个web项目,看一下项目架构 二.说道项目就会想到需要什么jar 三.就是准备大配置链接Orcl数据库 & ...
- js—模糊查询
首先要明白什么是模糊查询(废话又来了),就是根据关键字把列表中符合关键字的一项或某项罗列出来,也就是要检查列表的每一项中是否含有关键字,因此抽象一下就是一个字符串中是否含有某个字符或者字符串. 以下例 ...
- mybatis : trim标签, “等于==”经验, CDATA标签 ,模糊查询CONCAT,LIKE
一.My Batis trim标签有点类似于replace效果. trim 属性, prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条 ...
- combobox实现模糊查询自动填充
利用winform设计软件界面时,经常用到combobox控件,但有时需要绑定数据表中的数据,更进一步,需要实现对数据表中数据的模糊查询功能.本文就讲讲述如何用C#实现combobox下拉列表的模糊查 ...
- [转]ORACLE中Like与Instr模糊查询性能大比拼
instr(title,'手册')>0 相当于 title like '%手册%' instr(title,'手册')=1 相当于 title like '手册%' instr(titl ...
- 关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询
前言 上一篇关系数据库常用SQL语句语法大全主要是关系型数据库大体结构,本文细说一下关系型数据库查询的SQL语法. 语法回顾 SELECT [ALL|DISTINCT] <目标列表达式>[ ...
- StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改
前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey&qu ...
随机推荐
- 50条规则提高PHP开发提高效率技巧
0.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作 参数的“函数”(译注:PHP手 ...
- DEAMONTOOLS: installation
installing daemontools .. adding -I /usr/include/errno.h to last first line of conf-cc mkdir -p /pac ...
- 命令行从Android手机中导出已安装APK的方法调研
一.背景 二.步骤 一.背景 很多时候,APK文件只存在于应用市场,在PC上无法直接下载.用手机下载下来后就直接安装了,也不能保存原始的APK文件. APK安装到手机后,Android系统会保存一份和 ...
- nodejs的重要支柱
概念:模块(Module)和包(Package)是Node.js最重要的支柱. 开发一个具有一定规模的程序不可能只用一个文件,通常需要把各个功能拆分.分装.然后组合起来.模块正式为了实现这种方式而诞生 ...
- Linux -- ls只显示目录
ls没有直接显示目录的选项, 不过根据目录和文件显示的差异,可以搭配grep来实现 方法1: ll | grep "^d" 方法2: ls -F | grep$ "/$& ...
- IDL实现 Modis经纬度查询、迅雷下载
转载请注明原文地址 本文纯属交流学习,请勿用作其他用途.匿名登录ModisFTP站点可能导致侵权,所造成的一切法律后果,本人概不负责. 一 介绍 Modis免费分发,光谱通道丰富,产品体系成熟,在多个 ...
- Json解析异常处理方式(JSONException: Value of type java.lang.String cannot be converted to JSONObject)
有一次从服务器解析获取到的Json字符串突然报了这个异常,由于这个json是从 php页面上推送过来的,当时就查是不是由于编码问题引起的,所以就上网搜了,网上大部分都是说由于utf-8的bom头引起的 ...
- opencv 相关一个很好的博客
http://blog.csdn.net/zouxy09/article/category/1218765 图像卷积与滤波的一些知识点 图像卷积与滤波的一些知识点zouxy09@qq.comhttp: ...
- 深入理解React、Redux
深入理解React.ReduReact+Redux非常精炼,良好运用将发挥出极强劲的生产力.但最大的挑战来自于函数式编程(FP)范式.在工程化过程中,架构(顶层)设计将是一个巨大的挑战.要不然做出来的 ...
- 【项目笔记】拿宽高前measure(widthMeasureSpec, heightMeasureSpec)的使用技巧
我们知道获取宽高一般写法是: view.measure(0, 0); view.getMeasuredHeight(); 拿宽高前什么时候可以直接用measure(0, 0);而什么时候不能用meas ...