啊神的技术博客

我的小博客,小智慧

UITableView重用机制导致CABasicAnimation动画失效

| 评论

开发随记,再给cell上添加一个小动画图片时,遇到一个很蛋疼的问题,动画明明会动,而且退出后台在回来也会动,可就是拉出屏幕外,在回来时,动画失效了,不会动了。以下是动画代码,就是一个简单的摇摆动画

1
2
3
4
5
6
7
let rotationAnim = CABasicAnimation(keyPath: "transform.rotation.z")
            rotationAnim.toValue = M_PI/5
            rotationAnim.autoreverses = true
            rotationAnim.repeatCount = MAXFLOAT
            rotationAnim.duration = 0.2
            rotationAnim.isRemovedOnCompletion = false
            moveImgv.layer.add(rotationAnim, forKey: nil)

《自我营销七堂课》读书心得

| 评论

为什么选择这本书来读呢?或许是自己错过太多表现自我的机会,亦或是有人说我不懂得自我营销,亦或者羡慕他人侃侃而谈…. 于是就本着学习自我营销的方法,来读这本书的,前前后后也差不多花了一个月的时间,中间是断断续续的,不管怎么着这也是个读书的开始,哪怕不是一个完美的开局,或许会有一个完美的结局。

iOS自动打包上传脚本

| 评论

自从将swift2.2升级到swift3.0, 每次使用Xcode8编译都很慢,很是不爽,于是有了研究下xcodebuild命令行打包的想法,起初不知道用shell,还是用python, 在网上大概搜了一下,关于python的比较多点,于是就先学习python的基础语法,然后再去看看大神的一些脚本,就开始专研命令行打包了。总之,过程很艰辛,结果很满意,以下便是我修改后的python自动打包脚本,命令行使用,打包完成会询问是否上传蒲公英平台,以及询问是否上传appstore,还有是否保留archive文件。
自动打包脚本下载地址

集成友盟分享中遇到的奇怪的错误

| 评论

开发中遇到的一些看似不起眼的警告,往往却是问题的所在!


这不,这次我就遇到了这个坑,为了提醒自己不要轻易忽略警告,以此文章记录一下,埋坑的艰辛。

我是在集成友盟分享SDK的时候,使用cocoapods导入的友盟分享组件,在命令行敲下pod install只会,安装也完成了,就是出现以下一些警告,我大概浏览了一下,看不出所以然,就没管, 继续在集成。

读书,从2017开始

| 评论

诱因

  最近发生了很多事,让我开始反思自己,让我逐渐认识到自己的不足。工作上,同事一个个能言善辩,应答如流,而我却如同木头一般。生活上,朋友们都在笑谈风声,而我却又如同木头一般。每到这个时候,心情就会有点不好,心情不好我就会去看一些大牛的博客,不看技术的,只看大牛的一些生活记录博客,看大牛写的一些博客,对生活,对工作的见解,很是到位,看来他们也是读了无数的书,才能有如此的见解,让我心生敬佩、向往。

  究其原因就是我读书太少,没有那么多墨水,来表达心中所想。很感谢,哪些能力比较强的人,让我认识自己的不足,至少现在开始我还来得及弥补。

探索Xcode8编译为什么那么慢?

| 评论

背景

随着Xcode8swift3.0的正式到来,我开始着手将swift2.3的项目转到swift3(至于转换过程,这里不多做介绍,Xcode自带的转换工具,基本可以转换80%左右,剩下的自己慢慢调试即可。)但是,转到swift3只会,在用Xcode8编译,发现编译过程变得非常慢,哪怕打一个空格,都要重新编译很久。于是在网上查找解决办法,查找了半天各种方法全用,发现于事无补。
  有什么加一个HEADERMAP_USES_VFS = YES()这是地址,反正这个对我没用,感兴趣的话自己试试

针对这种情况,我就自己探索,出发点是排查哪些文件,哪些方法导致编译变慢?

探索Xcode编译,在哪些地方可以看到编译文件过程


通过多次编译查看,发现在Xcode左边栏,最后一个选项,是每次的编译运行等记录, 每行记录中都会有每次编译的文件编译记录。如下图

iOS 中的网络加密

| 评论

iOS 中的网络加密


引言:公司的接口一般会两种协议的,一种HTTP,一种HTTPS的,HTTP 只要请求,服务器就会响应,如果我们不对请求和响应做出加密处理,所有信息都是会被检测劫持到的,是很不安全的,客户端加密可以使用本文这套工具类进行处理。但是不论在任何时候,都应该将服务置于HTTPS上,因为它可以避免中间人攻击的问题,还自带了基于非对称密钥的加密通道。

HTTPS交互原理

简答说,HTTPS 就是 HTTP协议加了一层SSL协议的加密处理,SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA(如GlobalSign,wosign),在验证服务器身份后颁发,这是需要花钱滴,签发后的证书作为公钥一般放在服务器的根目录下,便于客户端请求返回给客户端,私钥在服务器的内部中心保存,用于解密公钥。

HTTPS 客户端与服务器交互过程:

1)客户端发送请求,服务器返回公钥给客户端;

2)客户端生成对称加密秘钥,用公钥对其进行加密后,返回给服务器;

3)服务器收到后,利用私钥解开得到对称加密秘钥,保存;

4)之后的交互都使用对称加密后的数据进行交互。