- 博客(16)
- 资源 (4)
- 收藏
- 关注
原创 git分支的介绍
分支的介绍(1)master分支:生产使用的最稳定代码,每个版本代码必须稳定、软件功能能正常使用。读写权限由负责人严格控制,平时全部写保护;后续需要合并,由管理员操作完成。(2)hotfix分支:生产发现的紧急bug修复分支,从master分支拉出,开发人员基于该分支进行bug修复。bug修复完毕、测试通过以及发布App Store后,代码合并回master和develop分支,并打上对应的版本号标签,hotfix分支被清除。(3)develop分支:研发最新最稳定的代码,从master拉出,要
2020-12-28 16:44:14
425
1
原创 什么是AOP编程?
什么是AOP编程?AOP是OOP的延续,是Aspect Oriented Programming的缩写,直译意思:面向方面编程、面向切面编程。AOP通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。可以在代码阶段实现分离关注,实现松耦合,然后在运行时将相关动作特征植入运行,从而改变程序的运行顺序,达到拦截或者增加功能的目的。常见框架:VirtualXposed下面先说AOP是什么样的思想,我们一步一步慢慢来,先看一下传统程序的流程,比...
2020-12-28 16:39:31
1744
原创 APP版本更新后,启动图片没随着更新
app版本在3.0时需要更新启动页,然而替换后发现并没有更新,在旧版本的基础上安装打开启动页还是之前版本的,只有删除从新安装才是我需要的启动页。经过漫长的各种方式测试终于搞定,下面分享一下走出坑的历程。一. 用 LaunchScreen.storyboard方式添加启动页1,跑一下程序,App启动页为1,然后更换启动页为2 1.启动页更换为LaunchImage方式,跑一下程序,app启动页为1.不成功 2.启动页更换为LaunchImage和LaunchScreen.storyb...
2020-12-28 16:29:50
573
原创 什么是Binary search tree? search的时间复杂度是多少?
Binary search tree:二叉搜索树。主要由四个方法:(用C语言实现或者Python)1.search:时间复杂度为O(h),h为树的高度2.traversal:时间复杂度为O(n),n为树的总结点数。3.insert:时间复杂度为O(h),h为树的高度。4.delete:最坏情况下,时间复杂度为O(h)+指针的移动开销。可以看到,二叉搜索树的dictionary operation的时间复杂度与树的高度h相关。所以需要尽可能的降低树的高度,由...
2020-12-28 16:29:13
1641
原创 静态库SDK—— .framework和.a的制作
一.库的介绍强调几点:第一 (.dylib库文件) == (.tdb库文件)第二. 自己建立的.framework是静态库,而系统的.framework是动态库第三. .a文件和.framework文件的区别: 区别一: .a是一个纯二进制文件,.framework中除了有二进制文件之外还有很多资源文件 区别二: .a不能直接使用,至少要有.h文件配合,.framework文件可以直接使用 区别三: .framewo...
2020-12-28 16:23:10
526
转载 tsconfig.json配置详解
{ "compilerOptions": { /* Basic Options */ "target": "es5" /* target用于指定编译之后的版本目标: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, "module": "commonjs" /* 用来指定要使用的模块标准: 'none', 'commonjs', 'amd', 'sy.
2020-12-28 16:05:59
1358
转载 iPhone开发关于UDID和UUID的一些理解
UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识. 在很多需要限制一台设备一个账号的应用中经常会用到,在Symbian时代,我们是使用IMEI作为设备的唯一标识的,可惜的是Apple官方不允许开发者获得设备的IMEI.一.UDID(Unique Device Identifier) UDID是Unique Device Ident
2018-01-25 14:52:28
1027
原创 NSDate与NSString的转换以及业务上几种常见时间转换需求
首先了解下NSDate的初始化:// 获取当前日期 NSDate *date = [NSDate date]; // 打印结果: 当前时间 date = 2016-06-16 11:00:04 +0000 NSLog(@"当前时间 date = %@",date); // 获取从某个日期开始往前或者往后多久的日期,此处60代表60秒,如果需要获取之前的,将6
2018-01-24 17:03:13
360
原创 iOS10 新特性-添加权限支持
手机升级了 iOS10,然后用正在开发的项目 装了个ipa包,发现点击有关 权限访问 直接Crash了,并在控制台输出了一些信息:This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must c
2018-01-24 16:41:44
502
原创 iOS10 权限崩溃解决方案
手机升级了 iOS10,然后用正在开发的项目 装了个ipa包,发现点击有关 权限访问 直接Crash了,并在控制台输出了一些信息:This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must c
2018-01-24 16:41:19
451
原创 关于iOS的单例设计模式
在iOS里,设计模式有如下几种:MVC、工厂、代理、kvo、通知(NSNotification)模式、单例模式下面一一介绍1.MVC模式:现在绝大部分项目都是基于MVC模式,但是有一部分开发者采用MVVC和MVP模式MVC模式 :(Model - View - Controller)model:主要处理数据,Model中经常含有多个字段,通常来说就是存储数据
2018-01-24 16:29:50
492
原创 关于友盟库的导入以及调不起第三方授权页的问题
首先是友盟库的导入,就不多说什么了,想要最新的就手动拖入,想要最快捷的就pod导入。 常见问题:如果遇到授权或分享没有调到对应app,则可能是没有添加对应的白名单,具体加入方法是右键info.plist选择source code打开,添加如下: 白名单的添加方法及具体各个平台;如果出现了跳不回本app的问题,则是少设置了urlScheme具体点击工程的target->info->URL
2017-03-03 22:02:31
731
原创 关于支付的回调处理
此处拿微信支付来举例,支付宝支付同理 添加WXApiDelegate //不同iOS版本的回调函数不同,但也大同小异,具体不再列举。 - (BOOL)application: (UIApplication * )application openURL: (NSURL * )url sourceApplication: (NSString * )sourceApplication annotat
2017-02-08 15:01:14
1742
原创 关于库的手动引入出现的头文件不存在的问题
Target —-> Build Settings ——> Header Search Paths$(PROJECT_DIR)/文件夹名 (直接点击openssl,然后showinfinder,然后command + i 查看路径,把得到路径的工程名字以后的部分加在文件夹名这OK了)第三方库的引入需要用到<> 提示文件not found,即文件不存在
2017-02-08 15:00:19
873
原创 由企业证书打包的app--提示证书不受信任的解决途径
图片演示出现情况与解决方案证书未受信任 第一步–进入设置选择一般(通用) 第二步–选择装置管理(设备管理) 第三步–进入对应企业证书 第四步–验证app
2017-02-08 14:56:34
2879
转载 iOS - 正则表达式判断常见格式
//邮箱+ (BOOL) validateEmail: (NSString *)email{ NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat: @"SE
2017-02-08 14:47:01
602
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人