1、获取当前时间 2、设置时间 3、创建UTC时间 4、解析时间 5、时间加减 6、 比较时间 7、计算时间差 8、时间戳 9、打印当前时间 10、手机当前的时区 11、手机...
1、获取当前时间 2、设置时间 3、创建UTC时间 4、解析时间 5、时间加减 6、 比较时间 7、计算时间差 8、时间戳 9、打印当前时间 10、手机当前的时区 11、手机...
Container组件嵌套chid【Container】,chid【Container】大小调整技巧 场景:有一个全局大小的父Container设置背景色,内部有一个子Con...
记录一下,解决不同应用场景的需求中各种组件的应用,这里不涉及原理,及详细解析。 场景1:组件需要点击事件 区别: 场景2:布局需要背景色,背景图,圆角,阴影及边框,这里用Co...
一、Homebrew Homebrew[https://brew.sh/]是一款Mac OS平台下的软件包管理工具 安装Homebrew 检测Homebrew是否安装成功 更...
处理JSON数据是在开发过程中一定会遇到的一项操作,通常情况下我们会先把JSON转为Dictionary,记住每个数据对应的Key,然后根据这个Key在Dictionary中...
网络如何通信 我们要理解网络中进程如何通信,得解决两个问题:a、我们要如何标识一台主机,即怎样确定我们将要通信的进程是在那一台主机上运行。b、我们要如何标识唯一进程,本地通过...
Runloop从语法上分析 UIApplicationMain内部默认开启了主线程的RunLoop,并执行了一段无限循环的代码(不是简单的for循环或while循环),UIA...
动态创建对象 动态创建对象的函数如下: class_createInstance函数:创建实例时,会在默认的内存区域为类分配内存。extraBytes参数表示分配的额外字节数...
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们...
Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现。 ...
方法调用流程 在Objective-C中,消息直到运行时才绑定到方法实现上。编译器会将消息表达式[receiver message]转化为一个消息函数的调用,即objc_ms...
一、多线程的基本概念 进程:可以理解成一个运行中的应用程序,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,主要管理资源。 线程:是进程的基本执行单元,一个进程对应...
load与initialize的区别 一、调用方式 1、load是根据函数地址直接调用2、initialize是通过objc_msgSend调用 二、调用时刻 1、load是...
分类、类扩展区别 分类-运行时决议,类扩展-编译时决议,类扩展是在编译阶段被添加到类中,而类别是在运行时添加到类中。分类中原则上只能增加方法(能添加属性的的原因只是通过run...
在iOS开发中定义@property属性时,经常用到assign、weak、strong、copy等关键字。我们经常会考虑在何时应该使用哪个关键字,尤其是在面试的时候,经常会...
一、通知的特性 NSNotification是苹果提供的一种”同步“单向且线程安全的消息通知机制(并且消息可以携带信息),观察者通过向单例的通知中心注册消息,即可接收指定对象...
代理模式是一种消息传递方式,一个完整的代理模式包括:委托对象、代理对象和协议。协议:用来指定代理双方可以做什么,必须做什么。委托对象:根据协议指定代理对象需要完成的事,即调用...
键路径(keyPath) keyPath定义键路径(keyPath)是一个由用点作分隔符的键组成的字符串,用于指定一个连接在一起的对象性质序列。用法:@"对象.属性"作用:常...