![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OC
大飞哥666
这个作者很懒,什么都没留下…
展开
-
iOS开发规范
转载:一份走心的iOS开发规范 - 云+社区 - 腾讯云原创 2022-01-07 20:47:08 · 1717 阅读 · 0 评论 -
Pod组件差异化处理方案
最近在做基础库建设及部分业务的重构工作。因为支持的业务方比较多,而且Pod库会在多个App中被使用,那么同一个Pod库如何在多端做差异化处理,以及具体做到什么粒度,在这里简单总结一下。方案:一、预编译宏 使用类似 #if __has_include 等预编译宏,做差异化处理。二、接入层差异化配置 接入层或者适配层做区分。三、端参数区分 在公共库配置端参数,在pod库内部做判断使用。四、配置subspect 区别比较大的话,可...原创 2021-11-19 21:19:10 · 2182 阅读 · 0 评论 -
iOS中在dealloc方法中取weakself引起崩溃的问题
iOS中在dealloc方法中取weakself引起崩溃的问题在dealloc方法中,如下代码就会crash:- (void)dealloc{ __weak __typeof(self)weak_self = self; NSLog(@"%@", weak_self);}控制台报错内容如下:objc[4572]: Cannot form weak reference to instance (0x160f6f890) of class XXX. It is possi原创 2021-03-22 14:24:26 · 2007 阅读 · 0 评论 -
iOS利用Runtime实现自定义类的序列化和反序列化
最近项目中有一个发帖子的需求,就是类似新浪微博中的发文章。现在要求增加草稿箱的功能,不同的帖子都可以将内容存储到本地。开始我打算用数据库做本地存储,但是,由于文本编辑有富文本内容,对应iOS中的NSAttributedString对象,这种对象存储到数据库没有对应的数据类型,然后就采用了做本地序列化和反序列化来存储内容,也就是归解档。 发帖页面大概是这样的,支持添加标题、封面、文...原创 2020-04-08 17:12:59 · 491 阅读 · 0 评论 -
iOS中获取光标位置(解决获取光标位置无穷大问题)
获取UITextView光标所在位置的方法://光标的frameCGRect caretRect = [textView caretRectForPosition:textView.selectedTextRange.start];在textViewDidChange代理方法中,使用如上获取光标所在的位置,但是,在使用中发现偶尔会导致获取的光标位置为无穷大(x = +Inf, y = ...原创 2020-03-17 16:14:47 · 1823 阅读 · 0 评论 -
iOS13系统适配暗黑模式调研总结
背景:iOS13系统提供了暗黑模式,公司各业务线App打算尝试适配iOS13系统暗黑模式。一、关于图片的适配:1、本地图片适配:Assets中设置(Any,Dark)类型,可设置两种模式下分别需要显示的图片(可兼容iOS低版本系统)。2、网络图片适配:设计人员出图需考虑同时兼容暗黑模式和正常模式(需出一套图,对应两种模式),不建议出两套图。二、关于颜色的适配:UICol...原创 2020-01-10 14:10:24 · 1366 阅读 · 0 评论 -
iOS13系统App应用图标发生变化的问题
最近我们App的应用图标进行了更新,在iOS13系统上,发现一个奇怪的问题,当点击App的时候App的图标会变回之前旧版的icon图标,当App从前台切换到后台时,也会看到旧版的icon图标,大概过0.5秒左右,才会从旧版的icon图标切换到新版的icon图标。删除应用重新安装还是会存在这个问题。 经过排除项目中确实没有旧版的icon图标了、项目中也没有用到下面这些方法去...原创 2020-01-02 16:43:19 · 6951 阅读 · 3 评论 -
iOS仿微信聊天输入框、评论输入框
最近项目有需求,需要实现一个类似微信聊天输入框的组件,用在全平台的评论功能中。大概需求就是输入的文字占满一行时,自动折行并且增大输入框的高,输入框的高有默认的最大值。在此,记录一下遇到的问题。1、项目中用到了三方库IQKeyboardManager,如果开启IQKeyboardManager的话,在Controller中侧滑会遇到bug,而且会影响其他的页面,这是得不偿失的,所以,最后禁...原创 2019-12-13 17:32:11 · 2954 阅读 · 0 评论 -
iOS中UICollectionView调用reloadData,导致视图失去第一响应者(失去焦点、键盘收起)的解决办法
需求: 有这样一个需求,在UICollectionViewCell中有一个UITextField控件,在输入的过程中实时判断格式是否正确,如果不正确就如图二展示的效果,也就是需要在键盘弹出的状态下动态调整Cell的高度。 遇到的问题: 我们可能会想到计算Cell高度,然后调用[collectionView reloadData]方法重新布局,但是,调用[collec...原创 2019-09-23 18:24:25 · 3655 阅读 · 0 评论 -
Cocoapods相关指令合集(打pod库、.podspec文件中、Podfile文件中)
一、组件化开发打pod库以及.podspec文件中相关指令: 1、添加'本地的私有仓库'(Spec Repo)文件:pod repo add baseSpecs http://***/***/specs.git 2、查看本地的所有repo:pod repo list 3、打开本地配置仓库管理文件夹进行查看:open ~/.cocoapods/repos ...原创 2019-07-24 15:34:41 · 2013 阅读 · 0 评论 -
Jekins打出来的包iOS9系统无法安装的问题
最近项目Jekins打包,用iOS9系统的手机扫二维码下载,总是下载失败,提示无法安装应用。1、其中,我们可以借助一个第三方工具,来查看安装APP的失败原因:Log Guru (工具)2、安装失败的日志分析:iOS自动化测试之ipa安装失败的日志分析2、一般的解决办法:iOS9无法安装企业版的解决办法最终找到的问题所在,是由于利用Jekins下载的时候需要提供的图...原创 2019-06-24 18:13:28 · 226 阅读 · 0 评论 -
iOS如何判断APP是在调试器(Xcode上)运行
#include <assert.h>#include <stdbool.h>#include <sys/types.h>#include <unistd.h>#include <sys/sysctl.h>static bool AmIBeingDebugged(void) // Returns true if th...原创 2019-01-15 11:43:17 · 1795 阅读 · 0 评论 -
iOS实现一段文字中指定的某些文字点击有响应事件或者可以跳转(给字符串添加超链接)
直接上需求,见如下UI图: 需求是点击中间的电话(蓝色字体部分),可以直接拨打电话。对于这种很长的一段文字中间夹着可以有点击事件的文字,可以通过下面这种方式解决:图中所指的这段文字,不用UILabel来展示,用UITextView来展示,如下://富文本- (UITextView *)bottomTextView { if (!_bottomTextView) {...原创 2019-01-29 16:19:46 · 1840 阅读 · 0 评论 -
iOS中如何正确释放GCD定时器(dispatch_source_t)以及防止Crash?
Dispatch Source Timer 的使用以及注意事项Dispatch Source Timer 是一种与 Dispatch Queue 结合使用的定时器。当需要在后台 queue 中定期执行任务的时候,使用 Dispatch Source Timer 要比使用 NSTimer 更加自然,也更加高效(无需在 main queue 和后台 queue 之前切换)。使用如下:@p...原创 2019-02-18 15:55:52 · 18390 阅读 · 0 评论 -
iPhone手机屏幕尺寸详细表格、A10和A11处理器介绍
1、屏幕尺寸链接地址:点击查看补充:iPhoneX系列,也就是带刘海屏的一系列手机,屏幕宽高比是一致的。iPhone5、iPhoneSE、iPhone6、iPhone6 Plus等一系列非刘海屏的手机,屏幕宽高比也是一致的。2、关于苹果A10处理器和A11处理器是几核的介绍:苹果A10、A11处理器是几核的介绍...原创 2019-04-02 14:48:19 · 3693 阅读 · 0 评论 -
iOS 真机访问sandbox(沙盒)目录的各种方法
我一直知道,要做成同一件事,程序员们的方式往往五花八门。所以这次就一个问题在微博上征集答案,果然得到了许多不同方案,和大家分享下。平常调试一直有看日志的需要,我们一般将日志文件存放在 sandbox 的 Document 目录下,之前我如果要查看某台设备上的日志,一般是按如下两种方式:方式一:使用 iTools,Mac 端的 iTools 可以访问真机 App 的完整目录,虽然 iOS 8...转载 2019-04-22 18:41:48 · 4068 阅读 · 0 评论 -
面向协议编程介绍 (附Swift和OC语言的区别)
面向协议编程,喵神在博客中有介绍:面向协议编程与 Cocoa 的邂逅 (上)面向协议编程与 Cocoa 的邂逅 (下)Swift和OC的区别、面向协议编程和面向对象编程的优缺点,可以看下面这篇文章:来一次有侧重点的区分Swift与Objective-C通过这几篇文章对面向对象编程和面向协议编程有了更深层次的理解,其中包括面向对象存在的三个困境:1、动态派发的安全...原创 2019-05-22 15:22:02 · 1652 阅读 · 0 评论 -
iOS App在运行过程中占用系统内存的方法和CPU使用率的计算方法
最近在调研iOS中的OOM(Out-Of-Memory),iOS中存在一些机制,当系统的内存不够用时或者当前APP的使用内存超过了阈值,就会导致系统强杀当前APP,由于强杀当前APP的进程是系统做的事情,所以,当前APP是无法知道是什么时候被强杀的。而且,我们平常使用的通过监测signal信号量来获取Crash的工具也是无法获取OOM这类强杀的。在调研测试过程中,用到了计算当前APP占用...原创 2019-06-26 16:49:57 · 3958 阅读 · 0 评论 -
深究Xcode的bitcode设置
文章地址:https://blog.csdn.net/u011363981/article/details/71516473转载 2018-11-08 16:30:03 · 727 阅读 · 0 评论