用QuartzCode快速实现一个收藏动画

前言 “工欲善其事,必先利其器”,iOS的Core Animation非常强大,可以做出非常炫酷的动画,但是实际写起来还是比较麻烦,代码不直观,需要反复的改参数、Build、运行,所以诞生了各种动画制作工具,本文就以其中比较有名的QuartzCode为例,快速实现一个收藏功能的星星动画,最终的效果如下: GitHub地址:https://github.com/zekunyan/QuartzCodeExample-StarAimation QuartzCode简介 QuartzCode是一款专门用来创作iOS/macOS动画的软件,基本上把整个Core Animation框架的内容都搬到了软件里面, »

反编译分析Xcode8 Release环境下的一个二级指针的EXC_BAD_ACCESS问题

二级指针 二级指针,也叫指针的指针,或者Out Parameters,可以用来改变一个指针的地址值,由于在Objective-C里面方法、函数不支持返回多个值,所以经常用二级指针实现这个功能,比如NSFileManager的- (BOOL)removeItemAtURL:(NSURL *)URL error:(NSError **)error方法,就可以让方法在内部创建error后传出。 问题 最近在Debug代码的时候,注释掉了一个带有二级指针参数的方法内部所有代码,然后在Release环境下安装运行,结果居然Crash了,猛然想起好像以前同事也遇到过,仔细检查了下,感觉代码是没有问题的, »

ViewController中的UIView Property要设置为weak还是strong

众所周知,从IB中拖出来的outlet Xcode会默认设置为weak,那么代码new出来并且addSubview到self.view的view,我们在property里要设置为strong还是weak呢。 Weak or Strong? 假设一个ViewController的self.view中有一个Label,那么他们三者的关系是: self.view--strong-->Label" /> 可以看到Label的所有者其实是self.view,正常来说一个对象只有一个所有者,如果再将ViewController中的Label引用声明为strong,那么当label从self.view中移除后,label将不会销毁,造成View的冗余。 于是我们愉快地把Label声明为weak,但是在初始化label的时候,Xcode又猝不及防地扔给我们一个warning。 »

做一个懂运营的极客

背景 在大部分开发工程师眼里,认为换 开机广告图 是件极其简单的工作,按照规定的尺寸,在管理后台配上 Banner 图和跳转 URL Scheme 就能完成的事情,就这样,在互联网时代,运营的工作边界就变得越来越模糊,很多时候,我们甚至会认为,运营的工作就是做一些很琐碎的事情。 很难怪大家有这样的认知,各种类型的、某个阶段的互联网公司,都伴随着不同文化,例如:Google是技术驱动、腾讯是产品驱动、早期创业公司是概念驱动。 »