IOS UIWindow 和 UIScreen-爱代码爱编程
通常UIWindow 与 UIScreen 是配合使用的。当我们想自定义window对象或者获取硬件屏幕大小必定会用到 UIWindow 和 UIScreen UIWindow 一个APP只有一个UIWindow 对象,表示当前窗口对象。UIWindow 继承于 UIView。 通常使用Window 自定义根节点的 UIViewControl
代码编织梦想
通常UIWindow 与 UIScreen 是配合使用的。当我们想自定义window对象或者获取硬件屏幕大小必定会用到 UIWindow 和 UIScreen UIWindow 一个APP只有一个UIWindow 对象,表示当前窗口对象。UIWindow 继承于 UIView。 通常使用Window 自定义根节点的 UIViewControl
一、概念: 因为运行时 runtime 是 必须到运行时(run time)才会做一些事情; 所以OC的动态特性表现为了三个方面:动态类型、动态绑定、动态加载; 动态:主要是将数据类型的确定由编译时,推迟到了运行时。之所以叫做动态, 二、iOS OC动态运行时~动态类型 1.动态类型,就是id类型。 2.动态类型是跟静态类
iOS开发者都知道,当一个对象被释放时,所有对这个对象弱引用的指针都会释放并置为nil,那么系统是如何存储这些弱引用对象的呢?又是如何在一个对象释放时,将这些指向即将释放对象的弱引用的指针置为nil的呢?下面我们通过分析SideTable的结构来进一步了解内存管理的弱引用存储细节。 weak结构 在runtime中,有四个数据结构非常重要,分别是Sid
首先来说下ios的历史吧!!! iOS系统诞生于2007年1月1日的Macworld上,当天公布了IOS的初代系统,当时它的名字是iPhone OS X,同时颠覆手机行业的iPhone也横空出世了,它创新的多点触控操作以及极简的用户体验都让全球消费者为之疯狂,3.5英寸的480X320分辨率的大屏幕也远远超过当时手机行业的平均配置,单Home键让 当时标配
正文 接 Weak的实现(二) 3 设置弱引用标志位 inline void objc_object::setWeaklyReferenced_nolock() { retry: //去对象的isa指针 isa_t oldisa = LoadExclusive(&isa.bits); isa_t newisa = ol
iOS上获取崩溃日志的N+1种方法 正常情况下,程序崩溃之后都会有崩溃日志保存在我们的手机里面,当崩溃的时候,我们可以通过如下几种方式找到我们的崩溃日志。 方法一:从本机隐私设置里面的里面导出来 当本机发生崩溃的时候,你可以从系统设置->隐私->分析与改进里面找到你当时的崩溃日志,通常,你的崩溃日志格式包含程序包名,时
前言 iOS开发中由于各种第三方库的高度封装,对锁的使用很少,刚好之前面试中被问到的关于并发编程锁的问题,都是一知半解,于是决定整理一下关于iOS中锁的知识,为大家查缺补漏。 目录 第一部分: 什么是锁 第二部分: 锁的分类 第三部分: 性能对比 第四部分: 常见的死锁 第五部分: 总结(附Demo) 正文 一、什么是锁 在过去几十年并
正文 接 Weak的实现(一) 2 生成新的weak_entry_t插入到weak_entries中 /** * Registers a new (object, weak pointer) pair. Creates a new weak * object entry if it does not exist. * * @param we
RxSwift到底是什么? RxSwift是一种函数式响应式编程。那什么是函数式编程呢,函数式编程最重要的概念就是“无状态(immutable)”,看到这有些小伙伴可能会很开心,无状态(知名LOL职业选手)嘛,我是他的粉丝!言归正传,到底什么是“无状态(immutable)”呢?我看了很多文章,但是都被他们专业的描述整的一头雾水,我来说说我的看法:有丰富
本文较长分三篇按序阅读体验更佳,第四篇为辅助阅读按需看 1.Weak的实现(一) 2.Weak的实现(二) 3.Weak的实现(三) 4.Weak的实现-&SideTables()[oldObj] 带着问题看源码: 1.大家都知道weak的底层实现是一个散列表,那么散列表的结构是什么样的? 2.散列表的key是什么,value是什么,散列函数是怎
一 常见多线程实现 (一)pthread (1)特点 1)一套通用的多线程API2)适用于Unix/Linux/Windows等系统3)跨平台可移植4)使用难度大(2)使用语言 C语言 (3)使用频率 几乎不用 (4)线程生命周期 由程序员进行管理 (5)概念、属性与方法 略 (二)NSThread (1)特点 1)使用更加面向对
程序员薪酬高、工作环境好,是很多同学向往的职业,让很多非计算机专业的同学羡慕不已。非计算机专业难道就不能成为程序员了吗? 一、学编程需要什么基础? 1、数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,初学者有高中水平就差不多了。
AVAudioRecorder、AVAudioPlayer 属于AVFoundation框架,使用时需要先导入**<AVFoundation/AVFoundation.h>**框架头文件。 AVFoundation 是苹果的现代媒体框架,它包含了一些不同用途的 API 和不同层级的抽象。其中有一些是Objective-C
有时候 ,我们会涉及到双向混合编程,特别是OC和swift的互相引用。 swift调用oc的方法: 1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可) 2、将需要引用的oc文件 .h头文件 添加到桥接类中。 如下: 然后在swift调用处,直接就可以使用了。 oc调用swift的方法: 1、首
序列化一般有两个主要目的: 网络传输对象持久化一般评判一个编解码框架的优劣时,会考虑如下几个因素: 是否支持跨语言;编码后的码流大小;编解码性能;类库是否小巧,API 使用是否方便;使用者需要手工开发的工作量和难度;类库的开源性以及社区活跃度;在同等环境下,编码后的字节数越大,存储的时候就越占空间,存储的硬件成本就越高,并且在网络传输时更占带宽,导致系
xcode12.2,FFmpeg4.3.1 1. 下载FFmpeg git clone https://git.ffmpeg.org/ffmpeg.git 也可以点击下载压缩包,我下的 .bz2 2. 编译FFmpeg 下载gas-preprocessor:https://github.com/libav/gas-preprocessor,亲测可
一:介绍 1. 什么是库? 库是共享程序代码的方式,一般分为静态库和动态库。 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。 2. 两种形式中.framework的区别 如上图所示,静态库的形式包含.a和.framewo
在swift 3中新增加了两种访问控制权限fileprivate和open。 下面结合网上资料和个人理解整理一下两个属性的原理与介绍。 fileprivate 在原有的swift中的private其实并不是真正的私有,如果一个变量定义为private,在同一个文件中的其他类依然是可以访问到的。这个场景在使用extension的时候很明显。 clas
摘要:这篇文章首先介绍runtime原理,包括类,超类,>元类,super_class,isa,对象,方法,SEL,IMP等概念,同时分别介绍与这些概念有关的API。接着介绍方法调用流程,以及寻找IMP的过程。然后,介绍一下这些API的常见用法,并介绍runtime的冷门知识。最后介绍一下runtime的实战指南。 Tips :苹果公开的
ASViewController是UIViewController的一个子类,它为承载ASDisplayNode层次结构添加了一些有用的特性。 ASViewController可以代替任何UIViewController,包括UINavigationController、UITabBarController和UISplitViewController,或