iOS蓝牙开发 - Central模式

Central模式

中心模式(Central Model),可以简单理解为设备App作为中心,连接其他蓝牙外设设备。区别于外设模式,官方介绍可自行Google。这里主要介绍iOS上蓝牙设备作为中心模式的集成。

功能集成

作为蓝牙使用者,程序需要请求蓝牙设备授权,在info.plist配置文件中,添加代码:

1
2
3
</array>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>蓝牙设备请求描述,比如:程序需要使用蓝牙进行设备发现</string>

项目Targets对应的 BuildPhases 中,引入 CoreBluetooth.framework ,使用的代码中引入头文件

1
#import <CoreBluetooth/CoreBluetooth.h>

阅读全文

FMDB

​ SQLite是一款轻型的数据库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它使用B+树存储表,整个SQLite数据库就是这些B+树组成的森林。。它的设计目标是嵌入式的,目前被广泛应用。 FMDB 是基于SQLite的实现 。

数据库(连接)

数据库在使用前均需要建立连接,FMDB提供了两种方式对应数据库文件’通常xx.db’路径建立连接。FMDatabase是一个单一的用来执行SQL语句的数据库连接,使用同步的方式进行,如果需要在多线程执行查询或者更新,则需要使用FMDatabaseQueue

阅读全文

地图模式的切换

描述

ALE中,地图定位模式包括普通导览模式、普通定位模式、普通指向模式、导航模式、导航指向模式、导航导览模式。
模式切换的时机有两种:点击模式切换按钮、操作地图画面。

阅读全文

UISearchBar自定义

参照一些常用应用对UISearchBar进行UI展示自定义

前言

​ 系统默认的搜索栏(UISearchBar)默认样子真心不好看,而平时iOS移动项目中又缺不了搜索功能,参照一些常用应用对UISearchBar进行UI展示自定义,效果图如下:

UISearchBar介绍

​ 如图所示,包括placeholder、textfiled、clearButton、bookmarkButton、leftView等:

  • ① SearchBar的TextField的leftView;
  • ② SearchBar的TextField的placeholder;
  • ③ SearchBar的BookmarkIcon,默认不显示;

阅读全文

学源

针对大中型企业、单位的知识管理和学习特点,打造专注服务企业的慕课平台。让企业、学校和企事业单位教育培训快速上线,拥有自己独立、安全私密的教育培训平台。

阅读全文

基数排序

​ 基数排序(radix sort)属于“分配式排序”(distribution sort),基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。参照斯坦福大学算法公开课视频

阅读全文

计数排序

​ 计数排序是一个非基于比较的整数排序算法,用空间换时间,优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围)。

基本思想及实现

基本思想: 假设输入的线性表L的长度为n,L=L1,L2,..,Ln;线性表的元素属于有限偏序集S,|S|=k且k=O(n),S={S1,S2,..Sk};则计数排序可以描述如下:

  • ① 扫描整个集合S,对每一个Si∈S,找到在线性表L中小于等于Si的元素的个数T(Si);
  • ② 扫描整个线性表L,对L中的每一个元素Li,将Li放在输出线性表的第T(Li)个位置上,并将T(Li)减1。

阅读全文

快速排序

​ 快速排序是采用分治法(Divide and Conquer)的应用。和归并排序不同的是,她不需要额外的存储空间,时间复杂度: T(n) = Θ(nlgn),最坏情况下是:T(n) = Θ(n²)。

基本原理及实现

基本原理: 使用递归、分治的思想,每次调用排序方法,随机选取一个key值,结果保证:key值所在数组中的位置,且能保证key左侧位置的数据总小于key值;右侧位置数据总大于key值

  • ① 当数组为空时,数组不需要排序,算法结束。
  • ② 选取一个key值,可以是带排序数组中任意位置的元素,这里选第一个元素。
  • ③ 遍历数组(角标j),将所有比key值小的元素移动到数组前边(角标i)。遍历结束时,i即是中间位置。
  • ④ 将key值与角标i位置元素位置互换。
  • ⑤ 递归对i位置左侧、右侧数组进行快速排序。

阅读全文

二分查找

​ 二分查找算法也称为折半搜索、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。算法是建立在有序数组基础上的。时间复杂度: T(n) = Θ(logn)。

原理及实现

基本原理:使用递归、分治的思想

  • ① 当数组为空时,说明数组中不存在需查找的元素。
  • ② 用有序数组的中间位置元素与需查找元素进行大小比较,如果相等,则查找结束。
  • ③ 如果中间位置元素大于需查找元素,则从数组左侧位置进行递归查找。
  • ④ 如果中间位置元素小于需查找元素,则从数组右侧位置进行递归查找。

阅读全文

归并排序

​ 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。需要额外的存储空间,时间复杂度: T(n) = Θ(nlgn)。

阅读全文