自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 [iOS] dyld: warning: could not load inserted library

最近在尝试引入单元测试 XCTest,一开始使用的是个人开发者账号写了一个单元测试的 demo,正常调试或者运行都没有问题,但是在运行单元测试的时候,遇见了很奇怪的错误。先报一下环境,mac OS 10.14.6,XCode 11.3.1,iOS 13.3.1。运行单元测试时,APP 正常启动,但是 XCode 控制台出现如下提示,XCode 上方的状态文本一直显示Testing,过一两...

2020-04-27 10:40:56 955

原创 [iOS] dispatch_once_t 的单例模式完整实现

从 runtime 源代码角度解释单例模式的完整实现方式

2020-04-10 16:54:50 901

原创 [iOS] AFNetworking 的内存泄漏分析

本文分析了使用 AFNetworking 组件时遇见的内存泄漏问题的根本原因,给出两种解决方案——使 session 失效或者使用单例模式使其常驻内存,对比两种解决方案的差别。

2020-04-07 16:32:19 1316

原创 [iOS] 一次 Block 引起的循环引用的探索

本文主要涉及到了: (1) 使用 Block 添加通知时可能造成的循环引用问题; (2) 借助 dealloc 函数、 Leaks 工具和 Debug Memory Graph 工具分析循环引用的原因; (3) 页面 pop 后UINavigationController仍然保留页面引用的问题

2020-04-03 16:50:21 380

原创 [iOS] NSNotificationCenter 的接口功能分析和模拟实现

在上次NSNotificationCenter 移除通知的测试中,发现 NSNotificationCenter 的机制也是有迹可循,这次就尝试一下自己实现一个具有类似功能的 NotificationCenter。1. 分析功能通过查看NSNotificationCenter 的 API,可以分析出NSNotificationCenter 主要有下面几个功能:单例模式,通过de...

2020-04-02 13:27:02 403

原创 [iOS] NSNotificationCenter 不移除通知会崩溃吗

1. 问题导入NSNotificationCenter 添加通知的方式,有两种。- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable NSNotificationName)aName object:(nullable id)anObject;- (id <NSObject>)add...

2020-03-21 15:44:12 2133

原创 [iOS] UITextView 实现文本超链接 高度自适应 只响应超链接

1. 需求说明实现一个隐私条款对话框,内部的“隐私条款”部分需高亮且可点击并跳转至相应界面。 对话框中需要显示全部的隐私条款提示文本,已确定隐私条款提示文本的字数能够在一个屏幕内显示。 对话框内其它文本最好不响应其它事件,不出现包含“复制”等功能的Menu菜单。2. 方案简述由于 UITextView 已经实现了超链接跳转的功能,所以,相较于 UILabel,优先选用 UITextV...

2020-03-05 17:02:25 1499

原创 [iOS] UIScrollView (UIWebView) 截长屏功能实现

1. 需求说明由于最近产品要求能够将网页转换为一整张图片,预估整个网页的高度大概有10多个屏幕的高度,因此需要添加一个网页转换为图片的功能。如果是外部网页,可以用 Safari 浏览器的截长屏功能(需要iOS 13.0+)。但是,这次需要截取的内容是通过 APP 内的 UIWebView 显示的 HTML 网页,这就无法通过 iOS 自带的截屏功能实现了(都9012年了,iOS 怎么还没有...

2019-12-23 21:39:42 842

原创 [iOS] 键盘遮挡输入框的处理

1. 方案简述键盘遮挡输入框的处理,主要是依靠UIKeyboardWillShowNotification(键盘出现)和UIKeyboardWillHideNotification(键盘消失)的通知来实现的。通过UIKeyboardWillShowNotification.userInfo[UIKeyboardFrameEndUserInfoKey],可以获得键盘出现后的frame,该fr...

2019-12-07 18:44:25 583

原创 [iOS 13] UITabBarItem 标题颜色设置适配及 UITabBarAppearance 设置无效问题

在iOS 13升级之后,发现公司APP的UITabBarController上的所有小标题颜色发生异常。对比之后,发现在iOS 12系统下,这些标题文字的颜色仍然是设置的红色,而在iOS 13中,表现为常见的系统默认蓝。原来的写法:viewController.tabBarItem.title = title;[viewController.tabBarItem setTitleT...

2019-10-14 17:06:47 9145 5

原创 [Version Control] Git命令新手入门

目录一、关联并上传新的本地项目二、删除本地仓库/远程仓库下受.gitignore规则制约的文件三、Git的代码更新以及冲突解决1. 方法一:git pull = git fetch + git merge2. 方法二:git pull --rebase = git fetch + git rebase3. 方法三:git stash记录并分享笔者学习Git命令的路程。...

2018-09-30 10:53:09 1043

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除