- 博客(33)
- 资源 (2)
- 收藏
- 关注

原创 iOS 唤醒被Kill的APP保证蓝牙的长连接
iOS基础蓝牙连接和数据通信请在优快云搜索其他博文,这里不再赘述。iOS保证后台蓝牙长连接的方法,经亲测过归纳为以下几项:1.后台静音音频的循环播放后台循环播放一个静音的音频文件来保证APP的持续存活,不失为一个曲线方法。缺点是需要后台音频播放的说明及权限,在APP审核过程中会有被拒绝的风险。APP后台持续活动,不论是一直扫描还是连接Peripheral都可以做到蓝牙重连。...
2019-01-11 11:30:43
5383
24
原创 iOS Alexa Voice Service SDK 编译之旅(3)
上一篇博文介绍了从0开始的iOS AVS SDK的编译,到cmake配置命令的成功执行的各个步骤和注意事项。cmake配置指令完成之后,我们要做的事就是make出SDK的静态库,也就是iOS常用的.a文件。根据官网的命令流程,下面为make指令: make CBLAuthDelegate make DefaultClient make KWD make Playli...
2020-04-09 17:27:47
478
2
原创 iOS Alexa Voice Service SDK 编译之旅(2)
一切都开始于这里1.Alexa SDK编译流程官网地址:https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/ios.html2.Alexa SDK github源码官网地址:https://github.com/alexa/avs-device-sdk一、Alexa的编译过程编译流程中有一句话要时时...
2020-04-09 16:14:47
864
1
原创 iOS Alexa Voice Service SDK 编译之旅(1)
AVS,即Alexa Voice Service,是亚马孙提供的名叫Alexa语音智能对话服务,和国内的小米的小爱同学、百度的小度、阿里巴巴的天猫精灵和谷歌的GoogleAssistant有相似的功能。相比于国内的针对中文的语音交互,AVS更适用于国外的英文语音交互逻辑,但是编译使用之复杂也是令人叹为观止,迄今(2020.4.9)为止,网上还找不到一个可用的、已经编译好的iOS ...
2020-04-09 10:52:30
938
原创 ITMS-90381: Too many symbol files
在我们打包上传iPA到App Store Connect的时候,有时候会收到苹果发来的邮件:ITMS-90381: Too many symbol filesThese symbols have no corresponding slice in any binary XXXX: iPA包一样能用,只是多了许多用不到的符号表文件。1.原因 ...
2019-11-26 20:34:05
2236
原创 Xcode工程组件化之路(2)------ 组件的拆分和引入
上一篇简单介绍了一下组件的作用和中间件的概述和选取。这篇主要讲组件的拆分和引入。组件该怎么拆分呢?目前笔者采用底层+共有+业务的模块进行拆分。1.底层模块就是例如蓝牙连接实例对象、底层网络交互模块、地图功能等,单独采用组件接入的方式。当底层模块开发完,基本上不用进行太大的更新和修改。2.共有模块就是在各个模块间都能使用到的一些简单的功能集合。比如CommonUI(公共基础自定义UI...
2019-05-08 14:39:23
468
原创 Xcode工程组件化之路(1)------ 组件间通信:中间件
1.前言 当项目越来越来庞大,参与编写的人员越来多,代码分支和接入产品越发复杂时,项目组件化成了不二选择,什么是项目组件化?笔者简略概述为,以pod库的形式将复杂的系统业务拆分成不同模块,进而隔离不同的业务功能,然后分发与不同人员负责开发和维护,降低系统代码耦合度,方便管理。概括地不全或有误,请大家指正。 组件化有什么用呢?组件化最大的作用是隔离组件和功能。组件隔离是不同...
2019-05-07 20:14:13
633
原创 iOS CRC16校验 (包含大文件失败案例)
CRC16-CCITT (多项式:G(x) = x16 + x12 + x5 + 1简记式:1021)1. 计算原理预置1个16位的寄存器值为0,称为CRC寄存器; 取出第一个8位二进制数据左移8位后,与CRC寄存器异或,并把结果放于CRC寄存器; 如果寄存器最高位为1, 将寄存器左移1位,再与生成多项式的简记式异或; 否则仅将寄存器左移1位; 重复第3步,直到左移8次,这样...
2018-10-19 11:48:13
1587
原创 OC中的组合算法 从N个数里面取M个数的组合
从后往前选取,选定位置i后,再在前i-1个里面选取m-1个。 如 1 2 3 4 5 中选取 3 个1、选取5后,再在前4个里面选取2个,而前4个里面选取2个又是一个子问题,递归即可。2、如果不包含5,直接选定4,那么再在前3个里面选取2个,而前三个里面选取2个又是一个子问题,递归即可。 3、如果也不包含4,直接选取3,那么再在前2个里面选取2个,刚好只有两个。纵向
2017-12-06 16:46:58
1476
原创 iOS中 DES加解密详解 (中文韩文字符加密丢失情况)
目前在项目当中使用到DES加解密,遇到一些问题,进行梳理,分享一下。DES和3DES加解密的原理谷歌百度都有详细的解码,这里就不赘述了。1.DES加解密参数类型问题: 目前项目使用DES加解密都是针对字符串使用,要对一个NSDictionary类型进行加解密,需要转换成json字符串进行加解密: 使用convertToJSONData把NSDictionary转
2017-11-09 17:31:43
2092
原创 APP Store审核被拒 0. 10.0 Before You Submit: Program License Agreement
在做蓝牙项目提交APP Store审核的过程中出现了一个意想不到的被拒原因: 0. 10.0 Before You Submit: Program License Agreement 意思就是不符合苹果开发者计划许可协议。 当时就蒙了,我APP又不是金融类的应用,怎么会出现这个被拒原因?细看之下:
2017-10-17 09:26:34
3151
原创 ARC下 pop到Rootview 中间controller的内存控制
问题:在APP编写过程中,通常会使用popToRootviewController直接回到根视图,中间的视图控制器内存并没有被释放。如上图,控制器A push 出B,B push出C, C又push出D,但是在DController中进行操作后pop回到A,在此情景下,控制器B和C里的内存不会释放,不走dealloc方法, 如果B和C加载高内存使用控件,如地图类,视频类,内
2017-09-30 10:37:04
547
原创 Xcode缩小ipa包大小及symbols设置等
其实被这个问题困扰了好久,不过秉承着三分钟热度的新年新气象,还是要多弄懂一点(⊙_⊙)ゞSymbols是什么东西呢?虽然我对它没有深入的了解,但是大概知道它的作用。摘抄《深入理解计算机系统》里的一些描述:一个典型的ELF可重定位目标文件包含下面几个节:... ....symtab:一个符号表,它存放在程序中定义和引用的函数和全局变量信息。一些程序员错误地认为必须通过-g
2017-05-22 09:49:00
11885
原创 iOS10系统之后页面disappear 调用scrollviewdidscroll方法
近来做工程发现,当一个页面controller里面有scrollview或者tablview 并且重写了 scrollviewdidscroll这个代理方法,在push到其他界面的时候 一定会掉scrollviewdidscroll这个方法 而且是在viewwilldisappear之后调用。百思不得解,毕竟页面在push的时候没有滑动scrollview。自建demo测试,又发现不会出现
2017-01-13 11:17:52
2789
转载 OpenCV 在 iOS 开发环境下的编译和配置
http://www.onevcat.com/2012/03/opencv-build-and-config/
2014-11-20 18:31:21
977
转载 手势和UI控件之间冲突的解决方法(比如UITapGesture和UIButton冲突,UIPanGesture和UISlider冲突)
对于事件响应关系是有区别对待的,而且tap响应时间过后,系统会开始判断点击按钮,把刚才的长按理解为长期的touch down状态。这样处理我感觉很奇怪,万全之策还是要解决冲突,因为首先响应Tap事件,所以处理Tap事件的代理方法,过滤掉UIButton的影响。具体实现,首先添加UIGestureRecognizerDelegate协议,然后把 Tap手势识别对象设置代理self,然后实现如
2014-11-19 19:51:03
2384
原创 UIPanGestures手势与UITableviewCell上滑动删除手势冲突
UIPanGestures手势与UITableviewCell上滑动删除手势冲突因为tableView是scrollView的子类,scrollView的滑动也是拖动产生的,你这样加,就把它原来的拖动手势给屏蔽了。这样处理:1、添加手势代理,比如我这里的这个自定义的cell叫panCell。@interface panCell : UITableView
2014-11-19 15:58:32
6004
转载 iOS中facebook与twitter分享问题总结(2)
上次总结了facebook和twitter分享的三种方式:1.Facebook官方的SDK分享 2.ShareSDK,第三方集成的分享方式 3.网页分享方式分享其实还漏了一种,那就是IOS6之后,苹果自己集成了对于Facebook和Twitter等社交分享进行了集成。具体的使用方法如下:首先:加入Social.framework。在使用分享的那个类的头文件加入#impo
2014-11-17 10:33:42
2645
转载 iOS中facebook与twitter分享问题总结
移动分享是一个很普遍常见的问题,其中针对国外的app经常用到的无非这两个。以下是解决方案。1.我也极力推荐的一个方案,ShareSDK,这个是中国自己的一个第三方集成的分享模块,里面的功能很强大,包括目前所有的客户端的分享。只要在官网上下载sharesdk的包,然后阅读相关的文档,依样画葫芦就行了。把包导入到工程里面,注意路径的配置,然后注册facebook和twitter的APIke
2014-11-17 10:21:26
5650
转载 SDWebImage 笔记
SDWebImage托管在github上。https://github.com/rs/SDWebImage这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。使用示范的代码:UITableView使用UIImageView+WebCache类(基本应用,UIImageView的一个category
2014-11-14 18:30:22
433
转载 UIImageJPEGRepresentation和UIImagePNGRepresentation
UIImageJPEGRepresentation方法在耗时上比较少 而UIImagePNGRepresentation耗时操作时间比较长-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info使用UIIm
2014-11-13 09:43:00
571
转载 UIMenuController的使用,对UILabel拷贝以及定制菜单
1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES2. Menu所处的View必须实现 – (BOOL)canPerformAction:withSender, 并根据需求返回YES或NO3. 使Menu所处的View成为First Responder (becomeFirstResponder)4. 定位M
2014-10-27 20:30:37
440
转载 iOS手势UIGestureRecognizer
UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有6个子类处理具体的手势:1.UITapGestureRecognizer (任意手指任意次数的点击)// 点击次数numberOfTapsRequired// 手指个数numberOfTouchesRequired [plain] v
2014-10-27 11:22:28
423
原创 IOS Storyboard中使用Segue传值
故事板中,VIEW1与VIEW2有一条SEGUE连线。点击VIEW1中的按钮跳转至VIEW2,并且从VIEW1中传递值给VIEW2。实现:VIEW1.m添加下面的事件方法,该方法在视图跳转时被触发。-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(i
2014-10-16 13:54:21
541
转载 UINavigationController 设置左右按钮
UINavigationController 设置左右按钮UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc]initWithTitle:@"左按钮"style:UIBarButtonItemStyleBorderedtarget:selfaction:@selector(backView)];
2014-05-06 17:42:26
832
原创 UIWebView入门
iOS UIWebView基础知识1.只有使用loadRequest:加载网页,才能对之后的链接操作做goBack,goForward操作,即canGoBack,canGoForward才有可能返回YES. 使用loadHTMLString,loadData都不可以. 并且在load之后通过stringByEvaluatingJavaScriptFromString对网页
2014-05-06 13:58:17
667
转载 NSURLConnection实现HTTPS(SSL)链接请求
最近检测APP应用的网络请求,发现HTTP方式的接口,请求的数据比较容易让不道德的人截取并加以利用。所以建议接口请求数据的方式还是使用HTTPS(SSL),相对的安全些。在iOS中,使用NSURLConnection来请求HTTPS,就需要处理SSL认证,NSURLConnectionDelegate中定义了处理认证的方法:
2014-04-24 14:08:08
2232
原创 URL编码转换
#pragma mark - URL编码转换。+ (NSString *)encodeToPercentEscapeString: (NSString *) inputStr{ NSString *outputStr = (NSString *) CFBridgingRelease(CFURLCreateStringByAddingPercentEscape
2014-04-23 11:45:56
647
转载 iphone数据存储之-- Core Data的使用(一)
原文链接:http://www.cnblogs.com/xiaodao/archive/2012/10/08/2715477.html
2014-04-23 10:20:28
574
MAC SourceTree lisence
2018-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人