随笔分类 -  iOS

摘要:问题描述 线上版本从ios 13.x 之后出现很多afn相关的crash,在 AFNetworking 的 github 上对应的issue#4591,我在这issue下也添加我的评论的解决demo 下面是crash堆栈,有些crash并不只是下面这种最终crash在objc_retain,有些则是 阅读全文
posted @ 2021-05-14 12:20 布尔- 阅读(383) 评论(0) 推荐(0)
摘要:1.先检查ruby源 gem source -l // 国外官方源为 https://rubygems.org/ 2.最好替换为国内源,删除其他源 ( 速度更快,国内源有时会发生变化,所以国内源也要变化 ) gem sources --add https://gems.ruby-china.com 阅读全文
posted @ 2019-02-25 11:58 布尔- 阅读(355) 评论(0) 推荐(0)
摘要:最近在做 cordova 打包 ios 的项目(webpack 打包 vue项目后,再用 cordova 打包)。在加载 file:/// 协议时因为 webview安全机制有一些报错。SK各种找解决方法。 找到很多都说如下设置可以解决加载 file 时的报错: 但实际我试了,这样在ios 11上好 阅读全文
posted @ 2018-07-27 10:40 布尔- 阅读(1690) 评论(0) 推荐(0)
摘要:【前言】 在使用华尔街见闻 app 时,看到它的 tableVeiw 上的 cell 具有很好的展开与收缩功能。于是自己想了一下实现,感觉应该挺简单的,于是心痒痒写个 demo 实现一波。华尔街见闻 app 上的效果如下: 【本 demo 实现的效果图】 【思路】 由它的效果图可以观察出,cell 阅读全文
posted @ 2018-03-25 21:36 布尔- 阅读(10592) 评论(0) 推荐(0)
摘要:【集成 Realm】 本 Demo 使用 OC 创建,所以先进入 Realm 官网 (我记得之前都是有官方中文教程的,但现在最新版没有中文了),到 Objective-C -> Getting started. 选择静态库,按如下提示做好。 上面做法是 1.下载 Realm 包 2. 将 ios/s 阅读全文
posted @ 2018-03-17 22:02 布尔- 阅读(1888) 评论(0) 推荐(0)
摘要:【展示效果说明】 对 app 操作录屏时,展示出手指在 app 上的触摸效果可以看到具体点击情况,感觉这样比较直观方便,也不用做视频后期了。 这里简单用 runtime 实现了一个这样的效果,不需要修改任何代码,只要将 UIWindow+Touch.m 分类导入工程即可。 展示效果如下: 【实现思路 阅读全文
posted @ 2018-03-12 20:31 布尔- 阅读(2289) 评论(0) 推荐(0)
摘要:新建一个类Person,Person.h 不写代码,Person.m 有如下两个方法: 【动态添加方法】 尝试在 Person 类里添加一个 run 的实例方法。加上如下两个方法即可: 然后调用运行和打印如下: 在 ios调用私有方法 中有提到如何打印一个类下的方法 ,这里调用测试如下 打印如下: 阅读全文
posted @ 2018-03-11 21:34 布尔- 阅读(1356) 评论(0) 推荐(0)
摘要:有时在代码中会有需要调用私有方法的场景,如不想import太多头文件;想组件设计一些解耦的模块;查看别人模块中未暴露的代码进行分析等。 在 ios 中调用私有方法有很多种方式,主要是通过Runtime去实现。下面自己也测试一下。 新建一个Person类,Person.h中不写代码,Person.m中 阅读全文
posted @ 2018-03-11 18:46 布尔- 阅读(3642) 评论(0) 推荐(0)
摘要:后台返枚举数据给app,app需要对不同枚举转换成字符串显示。 一般想到方法用 switch 根据不同枚举变量返回不同字符串,结果就是判断代码写得很长,不优雅。更简便方式有如下: 使用的时候直接这样调用: 阅读全文
posted @ 2018-03-09 10:58 布尔- 阅读(4670) 评论(0) 推荐(0)
摘要:在开发中有时需要等网络请求完成之后拿到数据做一些操作,而且有时是同时好几个网络请求同时发起。这时会有对异步操作进行更进一步控制的场景,不单网络请求,有时一些其他本地文件,多张图片处理等可能都会遇到这种操作,GCD中就有很多这方面处理的api。 1. 利用并发队列和栅栏函数对异步操作进行控制。 // 阅读全文
posted @ 2017-12-24 23:38 布尔- 阅读(1648) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2017-11-09 10:49 布尔- 阅读(511) 评论(0) 推荐(0)
摘要:传统字体 font 大小适配可能会根据屏幕宽度与 iphone5 或 iphone6 宽度的一个比例来适配。但如果有这样一个需求,在显示 @2x 图片的手机上显示一种字体,在显示 @3x 图片的手机上显示另一个固定大小的字体。 所以这里的重点是要区分手机屏幕显示图片是@2x型还是@3x型的。 就它了 阅读全文
posted @ 2017-10-14 15:59 布尔- 阅读(1311) 评论(0) 推荐(0)
摘要:【实现效果】 【目录结构相关】 此示例展示用的是MVVM结构形式,表述如下 M:数据Model的存储,可以用来对属性进行处理。(即胖model概念,上图中xx万人订阅这个处理方法写在Model内) V: View。用来统一管理控件初始化与布局。 VM:viewModel。负责网络请求及其他计算或事件 阅读全文
posted @ 2017-10-13 16:13 布尔- 阅读(1449) 评论(2) 推荐(0)
摘要:看到网上说法 ios11 中 automaticallyAdjustsScrollViewInsets 属性被废弃,所以要设置 tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; 来修 阅读全文
posted @ 2017-10-12 10:54 布尔- 阅读(1032) 评论(0) 推荐(0)
摘要:一、适配 iOS11 问题1:项目中有原生与 H5 的交互,运行在 iOS11 时,直接漰溃在框架 WebViewJavascriptBridge 内部。 报错信息:Completion handler passed to -[WKWebViewJavascriptBridge webView:de 阅读全文
posted @ 2017-10-11 18:32 布尔- 阅读(1100) 评论(2) 推荐(0)
摘要:前几天在使用 UICollectionView 时碰到 cellForItemAtIndexPath 这个数据源方法没有被调用。这是一个 collectionView 返回 cell(item)的数据源方法。 一般情况,它没有被调用的原因有下: 1. 没有设置 delegate。 2. 控制器没有遵 阅读全文
posted @ 2016-09-10 11:04 布尔- 阅读(2262) 评论(0) 推荐(0)
摘要:【Block的简单使用】 1. block 当作参数来传递 如下定义一个没有返回值无参数的 block ,并把它作为参数,让系统调用,注意:这里是系统在调用,因为 UIView 动画结束是系统调用的。 void(^myBlock)(void) = ^() { NSLog(@"定义了一个 Block" 阅读全文
posted @ 2016-05-16 12:44 布尔- 阅读(2153) 评论(0) 推荐(0)