C++显式类型转换 (注:本文例程改编自《C++ Primer》) 关于类型转换,C++保留了C语言中的类型转换方式,并提供了4中新的类型转换方式。《Effective C++》鼓励我们使用新的转换方式: 第一,它们很容易在代码中被识别出来(不论是人工辨识或使用工具如grep),因而得以简化“找出类 ...
分类:
编程语言 时间:
2018-02-02 21:51:07
阅读次数:
194
消息发送:对象处理消息; 消息发送的selector作为消息的一部分,在对象的运行时底层参与了消息分发,最终完成动态函数调用。 objc_msgSend(void /* id self, SEL op, ... */ ) id objc_msgSend ( id self, SEL op, ... ...
分类:
其他好文 时间:
2018-02-02 14:32:21
阅读次数:
141
本文使用的 runtime 版本为 objc4-706。 __weak 修饰的指针最重要的特性是其指向的对象销毁后,会自动置为 nil,这个特性的实现完全是依靠运行时的。实现思路是非常简单的,对于下面的语句来说: id __weak weakObj = strongObj; 便是用 strongOb ...
分类:
其他好文 时间:
2018-02-01 22:10:16
阅读次数:
240
我们知道,在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量,这似乎成为了 Objective-C 的一个明显短板。然而值得庆幸的是,我们可以通过 Associated Objects 来弥补这一不足。本文将结合 runtime 源码深入探究 O ...
分类:
其他好文 时间:
2018-02-01 21:12:03
阅读次数:
240
Tips 《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 在这里第一时间翻译成中文 ...
分类:
编程语言 时间:
2018-02-01 00:19:00
阅读次数:
198
一:尾随系统切换语言 1>创建好项目project后, 新建一个多语言文件: 2>加入要设置的语言类型: 3>加入成功 细心的朋友可能会发如今English后面写的是3 Files Localized,这是由于英语是系统默认加入的,并且同一时候为Main.storyboard 和 LaunchScr ...
分类:
移动开发 时间:
2018-01-31 20:14:21
阅读次数:
339
Tips 《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 在这里第一时间翻译成中文 ...
分类:
编程语言 时间:
2018-01-30 21:16:35
阅读次数:
199
The army of United Nations launched a new wave of air strikes on terrorist forces. The objective of the mission is to reduce enemy’s logistical mobili ...
分类:
其他好文 时间:
2018-01-30 16:53:01
阅读次数:
164
本篇是我阅读《Effective Objective-C 2.0》的摘要与总结,如有疑问,,我会附上例子解释。 一、熟悉Objective-C 了解Objective-C语言的起源 Objective-C为C语言添加了面向对象特性,是其超集。Objective-C使用动态绑定的消息结构,也就是说,在 ...
分类:
移动开发 时间:
2018-01-30 16:32:06
阅读次数:
225
OCLint 是一个强大的静态代码分析工具,可以用来提高代码质量,查找潜在的bug,主要针对c,c++和Objective-c的静态分析。 Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。 1 brew install ...
分类:
移动开发 时间:
2018-01-29 17:36:10
阅读次数:
269