如果你从事iOS开发,
对于KVO肯定不陌生.
今天写了这篇文章,
让我们进一步了解KVO,
我们从下图几个部分了解KVO,
如果你看了这篇文章,
会颠覆你对KVO的认知,
原来你了解过得KVO只是一部分.
1.什么是KVO?
KVO(Key Value Observing, 键值观察)是Objective-C对观察者模式的实现,每次当被观察对象的某个属性值发生改变时,注册的观察者便能获得通知。
2.KVO的使用
这...
iOS逆向之文件系统结构
1.系统文件结构
系统文件
在手机终端执行uname -a 命令,终端可以在cydia中安装MTerminal插件. 执行命令后,可以看到iOS系统基于Darwin Kernel的,而Darwin Kernel是一种UNIX-like操作系统.
文件目录 在越狱设备上,可视化方式查看iOS系统文件相对于一般的iOS开发者来说,可能对iOS系统结构一无所知.因为权限低,App不能访问自身以外的绝大多数文件.iOS一旦越狱,就可以拥有更高的root权限,从而访问全系...
弱符号实现 iOS 组件化解耦
强弱符号简述
函数和全局变量编译后需要有唯一的符号名,在链接时才不会混淆。程序员所写代码中的变量名会经过修饰后作为符号名,比如 C 中fun会被修饰为_fun。而符号分为弱符号与强符号,对于 C/C++ 来说,编译器默认函数和已初始化的全局变量为强符号,未初始化的全局变量为弱符号,可以使用__attribute__ ((weak))定义一个弱符号,编译器决议符号时有如下规则:
不允许强符号被多次定义。多个符...
iOS 多线程面试题(死锁)
死锁就是队列引起的循环等待
1、一个比较常见的死锁例子:主队列同步
- (void)viewDidLoad {
[super viewDidLoad]
;
dispatch_sync(dispatch_get_main_queue(), ^{
NSLog(@"deallock");
});
// Do any additional setup after loading the view, typically from a nib.
}复制代码
在主线程中运用主队列同步,也就是把任务放到了主线程的队列中。 同步对于任务是...
没有“404”错误,就没有今天的万维网
编者按:超文本链接是World Wide Web的基础。但是如果没有404错误的话,我们所熟悉的互联网就不会有今天的规模和繁荣。Jesse Dunietz回顾了404错误的诞生历史,并且对它给出了一个充满哲学意义的极高评价:404之于万维网,就像0之于数学。无用之用,方为大用。原文发表在《大众机械》上,标题为:How the 404 Error Created the World Wide Web
404错误显然是项创新,但是如果没有它的话,你所了...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,...
微软前工程师:反思我在微软的职业生涯
编者按:微软的近况可以用复兴形容。重回巅峰的感觉肯定不错,但是这并不代表未来就是一片坦途。技术方向转型只能让你抓住一两次趋势,要想基业长青必须进行文化变革。事实上,在微软前工程师James Whittaker看来,微软现在取得的很多成就就是在人事上做出的大胆变革基础上取得的。只不过,这还远远不够,微软只是把一个脚趾伸进了未来之河。在Medium上发表的一篇文章中,他讨论了微软可以怎么去修复公司...
苹果发布iOS 13.2.2更新 解决后台频繁关闭问题
苹果今日发布iOS 13.2.2更新,解决了后台频繁关闭问题。
同时iPadOS也同步推出13.2.2版本。
此前,国内网友普遍抱怨,在升级iOS 13.2版本后,App(如微信)回到手机桌面或锁屏后可能会被系统关闭,下次打开需要重新启动。
而国外网友则反映,Safari,YouTube等应用在重新打开后会更频繁地重新加载。
而在近日,苹果也推送了iOS 13.3/iPadOS 13.3开发者预览版Beta 1更新。此前,苹果针对Homepo...
谷歌最新放出了量子计算的 hello world,他们是在谦虚吗?
当地时间10月23日,谷歌在《自然》(Nature)上发布论文,再次向外界证明公司团队已经通过实验实现「量子优越性」(QuantumSupremacy,此前习惯称作「量子霸权」)。
之所以说再次,是因为一个月之前,谷歌曾经和NASA联合在网上泄露类似的实验成果,声称取得了「量子优越性」。消息曝光,各界反响不一。论文中,谷歌设计了一个实验问题,用其团队的53量子计算机破解只需要200秒,而用传统计算机则需要...
SwiftUI 简单的使用教程
SwiftUI 简介
SwiftUI 是一种为任何 Apple 平台声明用户界面的现代化方式。以前所未有的速度,创建漂亮、动态的应用程序。
只需要描述一次的布局
为你的视图声明任何状态的内容和布局,一旦状态发生改变, SwiftUI 会自动更新视图的渲染。
List(landmarks) { landmark in HStack { Image(landmark.thumbnail) Text(landmark.name) Spacer() if landma...