摘要:
限定作用域访问级别: 在swift 3.0 之前,swift 提供3种不同的访问级别: 1.public(公开) 2.internal(内部) 3.private(私用) 默认的访问级别是internal,这意味着此成员只能在模组(module)内可见。如果要让其能够被模组外的成员访问,那么就要将其 阅读全文
摘要:
致歉声明: Peter在开发公众号功能时触发了一个bug,导致群发错误。对此我们深表歉意,并果断开除了Peter。以下交回给正文时间: iOS 事件处理机制与图像渲染过程 iOS RunLoop都干了什么 iOS 为什么必须在主线程中操作UI 事件响应 CALayer CADisplayLink 和 阅读全文
摘要:
说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求。 详细信息,请参考:http://www.cnblogs.com/wendingding/p/381 阅读全文
摘要:
一、扩展概述 扩展(Extension)是iOS 8中引入的一个非常重要的新特性。扩展让app之间的数据交互成为可能。用户可以在app中使用其他应用提供的功能,而无需离开当前的应用。 在iOS 8系统之前,每一个app在物理上都是彼此独立的,app之间不能互访彼此的私有数据。 而在引入扩展之后,其他 阅读全文
摘要:
我们知道在Block使用中,Block内部能够读取外部局部变量的值。但我们需要改变这个变量的值时,我们需要给它附加上__block修饰符。 __block另外一个比较多的使用场景是,为了避免某些情况下Block循环引用的问题,我们也可以给相应对象加上__block 修饰符。 为什么不使用__bloc 阅读全文
摘要:
下面代码会? Compile Error / Runtime Crash / NSLog…? 答案:代码正常输出,输出结果为: 为什么呢? 前几节博文中多次讲到了objc_class结构体,今天我们再拿出来看一下: 其中objc_ivar_list结构体存储着objc_ivar数组列表,而objc_ 阅读全文
摘要:
习题内容 下面的代码会?Compile Error / Runtime Crash / NSLog…? 答案:代码正常输出,输出结果如下: 使用clang -rewrite-objc main.m重写,我们可以发现 main 函数中两个方法调用被转换成如下代码: 我们发现上述两个方法最终转换成使用 阅读全文
摘要:
习题内容 下面代码的运行结果是? 运行结果为: 这里先看几个概念 id 在 objc.h 中定义如下: 就像注释中所说的这样 id 是指向一个 objc_object 结构体的指针。 id 这个struct的定义本身就带了一个 *, 所以我们在使用其他NSObject类型的实例时需要在前面加上 *, 阅读全文
摘要:
前言 关于Objective-C Runtime一篇好的文档 : Understanding the Objective-C Runtime 译文地址为: http://blog.cocoabit.com/blog/2014/10/06/yi-li-jieobjective-cruntime/ Ob 阅读全文
摘要:
1.在 iOS 编程中,这几种情况下需要处理多线程:UI 事件必须在主线程里进行,其他的可以放在后台进行;而进行一些耗时长或阻塞线程的任务,最后放进后台线程里进行。 2.iOS 的多线程技术有这么几种:线程,GCD 和 NSOperationQueue(操作队列)。 3.线程这种技术比较复杂,但线程 阅读全文