iOS屏幕旋转知识点以及实现
设置NavigationBar隐藏和显示
iOS APP如何做才安全
本来 写了一篇《iOS 如何做才安全–逆向工程 - Reveal、IDA、Hopper、https抓包 等》,发现文章有点杂,并且“iOS 如何做才安全”这部分写的越来越多,觉得 分出来更清晰一点。所以拆成两部分。 同时也是为了大家能 共同讨论,毕竟不是专业搞安全的,如果文中有错误 欢迎指正,共同进步。
iOS应用的安全性 常常被大家忽视。
iOS 如何做才安全?
1、首先,我们可以通过iTunes 下载 AppStore的ipa文件(苹果 把开发者上传的ipa包 进行了加壳再放到AppStore中),所以我们从AppStore下载的ipa都是加壳的,所以不能直接用来反编译。
逆向工程 - Reveal、IDA、Hopper、HTTPS抓包等
深入解构iOS的Block闭包实现原理
在iOS4出来后,苹果公司在OC中推出了block机制(也许更早就有了)。并且在后续的版本中大量的推广和使用了这项技术,比如对视图动画API的改版,比如GCD技术等等。block技术并不是什么新技术,他的本质就是闭包功能在iOS上的实现而已。而闭包功能在其他很多语言中都有实现,比如JAVA中接口的匿名实现。用闭包可以解决那些执行逻辑和上下文环境解耦的场景,如果从设计模式的角度来考虑的话闭包就是一种策略模式(Strategy)的实现。
深究Block的实现
先看一下Block使用的语法
声明一个block
1 | 返回值 (^名称)(参数列表) = ^(参数列表){ |
1 | int (^name)(int ,int) = ^(int a,int b){ |
作为一个函数的参数:
1 | - (void)testBlock:(NSString *(返回类型) (^)(int a))s(block名字) { |
Objective-C中的Block
iOS中block类型大全
typedef的block
作为属性的block
- 作为变量的block
- 作为方法变量入参的block
- 作为方法参数的block
- 无名block
- 内联函数的block
- 递归调用的block
- 作为方法返回值的block
- 作为函数名的block(太过奇葩,完全不知道怎么用-_-!)
The Right Way to Architect iOS App with Swift
关于 iOS 架构的文章感觉已经泛滥了,前一阵正好 Android 官方推了一套 App Architecture ,于是就在想,对于 iOS 来说,怎样的架构才是最适合的。带着这个问题,我开始了探索。
Why Architecture Matters?
这是第一个也是最重要的问题,为什么会出现各种 Architecture Pattern?真的那么重要么?
我们来想一下,无论是做一个 App 还是搭一套后台系统,如果是一次性的,今天用完明天就可以扔掉,那么怎么快怎么来,代码重复、代码逻辑、代码格式统统不重要。