- 博客(29)
- 收藏
- 关注
原创 CocoaPods 自定义三方框架
1、创建项目以及配置信息创建框架项目 打开终端,项目目录下执行命令// FrameworkNamepod lib create FrameworkName //此步骤会从git clone 一份项目框架 ,会有几个问题需要回答 诸如项目的语言类型 、选择测试框架、是否需要UIView 测试界面等问题//完成后项目会自动打开2、配置项目信息把framework需要的类文件放到 XXX/Classes(没有就新建)目录下 把framework需要的资源文件放到XXX/Assets目录
2021-02-04 11:35:35
212
原创 NSNotificationCenter 、 NSNotificationQueue 以及NSNotificationQueue和runloop的关系
NSNotificationCenter这是个单例类,负责管理通知的创建和发送,属于最核心的类了。而NSNotificationCenter类主要负责三件事添加通知 发送通知 移除通知
2020-06-05 14:03:11
578
原创 IOS 常见知识点总结 一
1.iOS 开发中数据持久性有哪几种?NSUserDefaults 通过key - vaule 的方式存储 多用于用户信息存储 往往自己封装一层使用(存量小) 文件保存 (图片 、视频、文档),也可以新建 text 记录数据 plist 、 json 甚至html 、css 写入 读取 数据库 SQLite 、FMDB(基于sqlite 封装)、Realm(并不是对SQLite或者CoreData的简单封装, 是由核心数据引擎C++打造,是拥有独立的数据库存储引擎,可以方便、高效的完成数据库的..
2020-05-19 11:39:17
252
原创 swift 5.0 字符串md5加密
func md5() -> String { let str = self.cString(using: String.Encoding.utf8) let strLen = CUnsignedInt(self.lengthOfBytes(using: String.Encoding.utf8)) let digestLen = Int(C...
2019-12-05 19:19:29
1138
原创 使用WKWebURLSchemeHandler
使用WKWebURLSchemeHandleriOS11以上,苹果为WKWebView增加了WKURLSchemeHandler协议,可以为自定义的Scheme增加遵循WKURLSchemeHandler协议的处理。其中可以在start和stop的时机增加自己的处理。遵循协议中的两个方法funcwebView(_webView:WKWebView,starturlSchem...
2019-09-20 14:44:56
5234
1
原创 swift WKWebView 实现 URLProtocol 网络拦截 修改 Referer添加
在我们的日常开发过程中有时需要我们对网络做拦截操作,诸如对request 的header 做修改 添加等。对于有效的url(http 或者 https) 只需要对request 做添加头文件即可//这里是对资源加入的防盗链 var request = URLRequest(url:url as URL); request.setValue(kReferer, forHTTPHead...
2019-09-20 14:27:14
3650
原创 FSPagerView 自定义 Cell 的使用
源码地址:https://github.com/WenchaoD/FSPagerView由于将 Collection Cell 的类型固定了,我们再使用自定义的cell时会编译无法通过。不知道以后原作者会不会加入自定义的.这里有几种兼容的方式一.找到FSPagerView.swift 文件将FSPagerViewCell 改成 CollectionCell 即可二.拓展 ...
2019-09-10 17:34:02
1391
原创 NSMutableAttributedString 属性总结
字体:NSFontAttributeName 该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。 段落格式:NSParagraphStyleAttributeName 该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上...
2019-08-09 16:16:08
2056
原创 响应式编程 什么是响应式编程
那么什么是响应式编程,来看个简单的例子:var i = 1,j = 2,k = i + j;print("k = \(k)") // k= 3i = 3j = 4print("k = \(k)") // k= 3在这里把i,j,k当成某个状态,k是j,i两个状态的组合,正常的编程中,在计算了k的状态之后,再去改变j,i的状态是不会影响到c的状态的。所以在正常编程中我们要去...
2019-08-06 19:17:52
465
原创 RxSwift-Observable.combinelatest 理解与使用
先来看下官方给出的解释案例http://reactivex.io/documentation/operators.htmlcombineLatest由多个可观测的值组成,并且当其中一个可观测的值发出数据时,combineLatest将其组合起来,并订阅到结果。 @IBOutlet weak var number1: UITextField! @IBOutlet we...
2019-08-06 09:04:17
2044
原创 基于RXSwift 下 页面跳转进行解耦 非ViewController类实现页面跳转优化 二
基于RXSwift 下 页面跳转进行解耦 非ViewController类实现页面跳转基于我之前文章做法在部分项目中无法正常跳转,或者是调转到当前视图的底层去了后来发现究其原因就是UITabbarController与UINavigationController相互嵌套使用导致的所以以下代码就不在起作用了,或者在某些页面将视图加载错了位置,主要原因是UINavigationCont...
2019-07-04 19:58:49
297
原创 iOS开发中,info.plist配置用户隐私配置说明
iOS10Privacy - Bluetooth Peripheral Usage Description --> App需要您的同意,才能访问蓝牙Privacy - Calendars Usage Description --> App需要您的同意,才能访问日历Privacy - Camera Usage Description --> App需要您的同意,才能访问相机...
2019-06-25 19:48:05
387
原创 Archive 之 Undefined symbols for architecture armv7
什么是armv7?推荐 :iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a在做静态库的时候以及引用静态库的时候经常会遇到一些关于真机模拟器不通用的情况,会报错找不到相应库导致编译失败,这里简单记录一下各种设备支持的架构。iOS测试...
2019-05-25 13:44:48
1570
原创 xcode编译生成.framework、.a静态库
一、概念解析静态库:被完整的拷贝到可执行文件中,被多次使用就有多份拷贝,有a 和 .framework两种形式;动态库:程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存,有dylib 和 .framework 两种形式系统的.framework是动态库,自己可编译的.framework静态库和动态库(据说用动态库app审核会通不过,没有验证,咱...
2019-05-25 13:03:56
3867
原创 关于tableview cell 重用机制理解 与cell 内容重复问题解决
在我们日常的开发过程中tableview 是十分常见的UI 控件之一。什么是Tableview?在众多移动应⽤用中,能看到各式各样的表格数据 。在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UITableView继承自UIScrollView,UITableView继承自UIScrollview,是苹果为我们封装好的一个基于scroll的控件。因此支持垂...
2019-05-21 19:48:01
896
原创 关于tableview 点击 展示 UIAlertController 延迟缓慢的诸多理解 与解决方法
问题 有时在点击tableview上的一个cell后弹出UIAlertController,会发现有延迟的问题,或者点击没有反应,随便再点击一下才会弹出问题解析 这种情况往往出现在 我们将 tableview 的 设置为 cell.selectionStyle = UITableViewCellSelectionStyleNone,是因为 点击事件发生后没有处理UI变...
2019-05-08 11:00:31
313
转载 IOS Xcode Swift 编码规范
1二元运算符(+, ==, 或->)的前后都需要添加空格推荐let testValue = 1 + 2 if testValue == 1 { /* ... */} func testFunction(with testValue: TestClass) -> returnValu...
2019-03-30 17:29:47
615
原创 swift deinit 不被执行
前言:strong:当你声明一个属性时,它默认就是强引用weak:弱引用对象的引用计数不会+1, 必须为可选类型变量在声明弱引用对象是必须用var关键字, 不能用let.因为弱引用变量在没有被强引用的条件下会变为nil, 而let常量在运行的时候不能被改变. deinit { //移除监听 NotificationCenter.defau...
2019-03-07 20:23:22
4400
1
原创 基于RXSwift 下 页面跳转进行解耦 非ViewController类实现页面跳转
在日常开发过程中我们为了使这个项目,页面精简 美观易懂,往往采用组件式开发,会对一个复杂的完整页面分割成一个个UI view ,UItableviewcell 等控件类,或者我们会在某些网络请求回调 和异步操作跳转页面。如何在这些类内进行页面跳转呢。class NavigatorService : BaseService{ static let publishSubject = P...
2019-01-31 14:01:38
886
原创 iPhone X设备tabBar高度错乱的问题
iPhone X在主界面是UITabBarController的情况下,如果控制器的hidesBottomBarWhenPushed属性设为true,进行push操作之后会出现tabBar高度错乱的现象,先变矮一截,然后返回的时候又弹回到正常高度,非常影响使用感受.如果再当前页面点击到可以旋转的页面,那么这个问题会更加严重。正常状态:页面异常下:import UIKitc...
2019-01-28 18:58:32
1521
原创 iOS FSCalendar 使用过程中遇到的问题
项目中用到了日历控件先前用了几个三方控件 ,后还是决定用FSCalendar这里我采用了xib 的方式来新建FSCalenda 此时可以看到日历有6行,如图设置即可 ...
2019-01-11 08:52:34
1546
1
原创 Mybatis resultmap resultType初识 二 :xml 文件的使用 多参数 单参数传值
先了解下查询 如下sql 语句说明 sql 的ID 要唯一!!!<resultMap id="BaseResultMap" type="map" > <id column="id" property="id" jdbcType="VARCHAR" /> <result column="u
2019-01-07 16:26:19
797
原创 Mybatis :搭建与配置一
我这里用了yml 文件来配置 mybatis: mapper-locations: classpath:mybatis/mapper/*.xml type-aliases-package: com.chris.apecircle.domain config-location: classpath:mybatis/config/mybatis-config.xml也可以在app...
2019-01-07 14:38:35
183
原创 iOS导航模式简单介绍
在iOS应用中,视图控制器处于重要地位。在UIKit中,视图控制器有很多种,有些负责显示视图,有些也同时兼顾导航。首先我们先见识几种常见的视图控制器:1、UIViewController。用于自定义视图控制器的导航。2、UINavigationController。导航控制器,它与UITableViewController结合使用,能够构建树形结构导航模式。3、UITableBarC...
2018-11-21 12:49:25
760
原创 mysql添加索引命令 并验证性能提升
数据库类型 mysql(阿里云) 操作表名称:ZbUser 16个属性 数据总量 :290629 创建脚本1.PRIMARY KEY(主键索引)mysql> ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 此时通过id 查询所用时间SELECT * from zbguser wher...
2018-11-13 17:07:59
422
原创 intellij Idea 如何双开
在日常的开发过程中,往往需要开启多个项目窗口进行开发,比如有些大佬需要在开发的同时又要维护之前的项目,这个时候IDEA 默认的在当前同一个窗口打开项目就不符合操作要求了。如何开启多窗口:然后搜索project opening,然后勾选设置open project in new window。...
2018-11-12 11:19:41
25216
3
原创 mysql 复制表以及表结构
1.复制表结构及数据到新表 create table新表select * from旧表 2.只复制表结构到新表方法1 :(低版本的mysql不支持,mysql4.0.25不支持,mysql5已经支持了) 创建表新表如旧表 方法2: 创建表新表select * from旧表limit 0 方法3: create table新表select * fr...
2018-11-07 14:47:32
224
原创 iOS的类方法和实例方法区别与使用 + -
1.什么是类方法?在OC类定义方法时以 + 开头的方法,又称为静态方法。如:+ (viod)方法名{ }.作用:不用实例话就可以直接调用的方法,一般是有返回值的,返回对应的实例(数组、字符串等),还有可能就是本身类的实例对象。常用于一些common或者UtiKit等公共方法类中。 调用:[类名 方法名】限制: 不能使用自身属性 ,想要使用的类方法就要在定义类的.h文件中声明哟,否则不能直接调...
2018-11-07 13:04:56
2557
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人