Objective-C运行时Runtime完全解读
Objective-C语言尽可能地将编译时间和链接时间推迟到运行时。只要有可能,它就会动态地执行操作。这意味着该语言不仅需要一个编译器,还需要一个运行时系统来执行编译后的代码。运行时系统作为Objective-C语言的一种操作系统,它使语言...
Objective-C语言尽可能地将编译时间和链接时间推迟到运行时。只要有可能,它就会动态地执行操作。这意味着该语言不仅需要一个编译器,还需要一个运行时系统来执行编译后的代码。运行时系统作为Objective-C语言的一种操作系统,它使语言...
前言 并发性是指多个事件同时发生的概念。随着多核cpu的普及以及每个处理器中内核数量的增加,软件开发人员需要新的方法来利用它们。尽管OS X和iOS等操作系统能够并行运行多个程序,但这些程序大多在后台运行,执行的任务几乎不需要连续的处理器时...
Objective-C中的内存管理 内存管理是管理对象的生命周期,并在不再需要它们时释放它们的编程规则。管理对象内存是性能问题;如果应用程序没有释放不需要的对象,那么它的内存占用会增加,性能会受到影响。然而,垃圾收集在iOS中是不可用的。i...
前几天,我在iOS上搜索了更多关于内存管理的内容。这对我来说是一个很难理解的话题。因此,我决定在Objective-C中再深入一点——因为我已经在学习它了,以便更好地理解内存管理,并对这个主题有更深入的理解。例如在ARC之前是怎么样的?之后...
当Cocoa/CocoaTouch框架处理几乎所有具有高级API的东西时,使用Core Foundation中的东西则可能有一些困惑,本文主要介绍Core Foundation和Foundation的区别以及相关的内存管理。 什么是Core...
event loop是什么?为什么不能在子线程更新UI?你可能听过Android中的looper、iOS中的事件循环、JavaScript的Event Loop等等,这些都是类似的概念。GUI编程中可能最容易犯错或忽略的问题是:在子线程中更...
关于内存管理 应用程序内存管理是在程序运行时分配内存、使用内存并在使用完内存后释放内存的过程。编写良好的程序使用尽可能少的内存。在Objective-C中,它也可以被看作是在许多数据和代码之间分配有限内存资源所有权的一种方式。完成本指南的学...
block对象基于C语法和运行时特性,类似于标准C函数,但是除了提供可执行代码,还可以绑定栈和堆的内存变量。 你可以使用block来组合函数表达式,这些表达式可以传递给API,可选地存储,并由多个线程使用。block作为回调特别有用,因为b...
上一章CocoaPods教程请查看:创建一个CocoaPods Podfile Podfile是描述一个或多个Xcode项目的target的依赖性的规范描述文件。 Podfile文件可以很简单: 一个更复杂的Podfile的例子是 根选项...
上一章CocoaPods教程请查看:创建一个CocoaPods CocoaPods不仅是向项目中添加开源代码的好工具,也是跨项目共享组件的好工具。你可以使用私有的Spec Repo来实现这一点。 有几个步骤,以获得一个私有Pod设置,为你...