首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
面试
订阅
篮球火
更多收藏集
微信扫码分享
微信
新浪微博
QQ
16篇文章 · 0订阅
iOS之NSTimer循环引用的解决方案
在使用NSTimer,如果使用不得当特别会引起循环引用,造成内存泄露。所以怎么避免循环引用问题,下面我提出几种解决NSTimer的几种循环引用。 当你在ViewController(简称VC)中使用timer属性,由于VC强引用timer,timer的target又是VC造成循…
iOS 底层拾遗:AutoreleasePool
在阳神的 黑幕背后的Autorelease 文章中已经把 AutoreleasePool 核心逻辑讲明白了,不过多是结论性的东西,笔者通读源码以探究更多的细节,验证一下老生常谈的一些结论。 源码基于 Runtime 750。 可以猜测 push 和 pop 操作是实现自动释放的…
移动端性能优化
main() 函数执行后的阶段,指的是从 main() 函数执行开始,到 appDelegate 的 didFinishLaunchingWithOptions 方法里首屏渲染相关方法执行完成。 减少动态库、合并一些动态库(定期清理不必要的动态库)。减少动态库加载。每个库本身都…
如何面试一个Swift程序员
说到Swift不得不提一下Objective-C。 Objective-C作为和C++同一时代的语言,是苹果和Smalltalk生下的孩子,它寄托了苹果无尽的期望。 然而时代在发展,人们通过无数次实践总结出了各种编程思想。Objective-C那诡异的中括号和动态语言的弊端,让…
阅读Kingfisher源码的一些收获
1. 命名空间的使用 Kingfisher命名空间有2种方式,一种是使用协议加上包装器,另一种是把类型定义在枚举里。参考协议KingfisherCompatible和类型public enum MemoryStorage {},一个是空协议,扩展了一个kf计算属性,但kf里又有…
iOS中用到的数据结构_哈希表
哈希表(hash table,也叫散列表),是根据键(key)直接访问访问在内存储存位置的数据结构。 哈希表的关键思想是使用哈希函数将键映射到存储桶。更确切地说, 当我们想要搜索一个键时,哈希表将使用相同的哈希函数来查找对应的桶,并只在特定的桶中进行搜索。 weak表采用的…
图像渲染优化技巧
这个令人困扰的问题,是由于开发者和平台的相互不信任引起的。各种各样的代码示例充斥着 Stack Overflow,每个人都声称只有自己的方法是真正的解决方案 —— 而别人的是错的。 在本周的文章中,我们将介绍 5 种不同的 iOS 图像渲染优化技巧(在 MacOS 上时适当地将…
AFNetworking底层源码解析
AFNetworking是适用于iOS,macOS,watchOS和tvOS的的网络库。它构建于Foundation URL系统之上,扩展了Cocoa内置的强大的高级网络抽象。它采用模块化架构,设计精良,功能丰富的API,使用起来非常简单。本文重点介绍缓存和安全两个模块; 二.…
Objective-C Runtime Programming Guide
在Objective-C中,消息直到运行时才绑定到方法实现。编译器将表达式为[receiver message]这种的消息转换为objc_msgSend方法发送消息, objc_msgSend方法首要两个参数分别为方法的接收者receiver, 发送消息的方法selector …
iOS 面试题(上)
1. 什么情况使用 weak 关键字,相比 assign 有什么不同? 自身已经对它进行一次强引用,没有必要再强引用一次,此时也会使用 weak,自定义 IBOutlet 控件属性一般也使用 weak;当然,也可以使用strong。在下文也有论述:《IBOutlet连出来的视图…