一、前言
本系列文章通过介绍 贝塞尔曲线 的基础知识,贝塞尔曲线在iOS中的应用以及一些高级技巧,循序渐进,试图让读者对iOS的中贝塞尔曲线知识有一个较系统的认识。
你可能在很多地方听说过贝塞尔曲线,但是贝塞尔曲线到底是什么,它有什么特性能让它有这么高的知名度,它到底有什么用呢?
只要路是对的,就不怕远
本系列文章通过介绍 贝塞尔曲线 的基础知识,贝塞尔曲线在iOS中的应用以及一些高级技巧,循序渐进,试图让读者对iOS的中贝塞尔曲线知识有一个较系统的认识。
你可能在很多地方听说过贝塞尔曲线,但是贝塞尔曲线到底是什么,它有什么特性能让它有这么高的知名度,它到底有什么用呢?
在Core Animation中, 借助Core Animation 提供的几个动画类我们可以对一个Layer做各种酷炫的动画,在实例 CAPropertyAnimation 的时候( CABasicAnimation 和 CAKeyFrameAnimation均继承自该类),通过构造方法 convenience init(keyPath path: String?),需要传入一个字符串。 那么问题来了,这个参数到底可以取哪些值呢?
最近在找工作,运行时基本上是面试笔试必问的一道题,能考察出面试者对OC这门语言的掌握程度,及其技术深度。当然,与其相类似的问题还有 Runloop, ARC等等。我准备用一个系列来写写OC中的运行时,一方面能让自己有个系统的掌握,另一方面希望我分享出来的东西对大家有所帮助。
在项目开发过程中,通常我们有不同的版本,例如:生产版本和公开版本。这些版本之间在代码上会有一些差别,例如生产版我们要使用生产版的Server和数据库,到了公开版我们会换成公开版的Server和数据库,与之相类似的区别还有API Version,API Key等等。
来自谷歌Mac团队,主要介绍 @synchronized代码块被编译后是如何工作的,使用之后会付出哪些代价,以及如何避免使用 @synchronized 来实现高性能的线程安全。
解决办法是: 执行 nvm 命令前,先执行 source ~/.nvm/nvm.sh 命令。载入配置命令使nvm命令生效。
可以把 source ~/.nvm/nvm.sh 命令 写进 ~/.profile 或者 ~/.bashrc 文件中, 下次打开Terminal 时会自动执行这个命令。
一开始我们都认为 noatomic 非原子性,其修饰的属性是非线程安全的,而 atomic原子性修饰的属性是线程安全。其实事实并非如此。
被atomic修饰的属性,所说的线程安全,只是把setter 和getter方法中对属性进行读写时才会加锁。Objective-C的Runtime是开源的,我们可以在源代码中一窥究竟:
今天做一个Android项目发现一个需求,本地的Java Object需要用Gson转成JSON,并保存到服务器,而其中一些只用以在本地数据库中作用的Field,比如数据库主键id,更新时间LastUpdateDate,并不想变成JSON。 当然你可能会说用Java 语言关键字transient啊,可是使用transient修饰后的变量是不会被序列化和反序列化的,也就是说这些变量,会在传输中丢失,那么Activity之间传值就会出现问题。
我们的代码里出现中文汉字,基本上是因为项目时间紧,为了快速开发,先Hard Code 代码里。
但是后期项目要进行国际化,必须要把汉字替换回来。然而如果一个一个地找然后替换,费时又费力,即使再仔细,也难免会有漏网之鱼。