Cocoa中常用的宏定义

我们在 Cocoa 的头文件中常会看到很多宏定义,这里列举几个可能会用到的

NS_AVAILABLE

这个宏定义常用于 API 版本控制,表明函数/属性的使用版本,是否废弃等情况,用法如下:

该方法在 iOS 4.0 中引入

+ (void)animateWithDuration:(NSTimeInterval)duration 
animations:(void (^)(void))animations
completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);

Read More

如何让自定义 UIView 支持 XIB

当我们拖拽一个 view 到 XIB 上,然后设置 view 属性的时候有没有想到让自己定义的 view 也支持通过 XIB 设置属性,甚至还能实时渲染。

过去相关接口是不开放的,但是从 XCode6 开始,我们也可以定义像系统控件一样支持在 XIB 视图下设置属性并能实时渲染的控件了。

Read More

通过 XIB 加载 UIView

在项目中有些 view 需要独立做成一个组件,供多个 VC 使用,而且本人项目中习惯使用 XIB,所以这个 view 的组件也希望使用 XIB 来实现。但是当我们创建 UIView 的时候默认是不包含 XIB 文件的,这就需要再创建一个同名的 XIB 文件。但是如何把 XIB 和 UIview 关联起来呢。

通常我们通过代码加载 XIB 的方法是:

+(id)viewFromNibNamed:(NSString*)nibName owner:(id)owner{
NSArray* nibView = [[NSBundle mainBundle] loadNibNamed:nibName owner:owner options:nil];
return [nibView firstObject];
}

Read More

HTTPS 详解

移动端的安全问题越来越受到重视,苹果对 iOS 开发已经默认要求使用 HTTPS 了,HTTPS 的安全性毋庸置疑,在移动端使用 HTTPS 通信,可以省去很多安全方面的困扰。这里就简单说一下 HTTPS。

Read More

使用xib加载View的小技巧

本人在开发中比较喜欢用 xib 来作布局,通常情况下,我们需要把一些常用的 view 封装成组件来供大伙儿使用。但是这个组件一般只是负责 view 层的展示任务,事件相关的业务逻辑需要转发到相应的 controller 里面去。这里介绍一下本人使用的一种方法。

直接上代码

Read More

百度 WormHole 漏洞分析

还记得9月份 Xcode 曝 XcodeGhost 漏洞的时候,网络上一片哗然,大家纷纷叹息一直以安全性著称的 iOS 系统也不再安全了,像微信、网易云音乐等安装量过亿的 APP 纷纷中枪。接着是各种漏洞利用的分析,分析一轮下来,最令人咋舌的就是可以通过这个漏洞来获取用户 appleID 了。

然而事过两个月之后百度 Android APP 被爆出了 WormHole 虫洞漏洞,与其说这是一个漏洞,倒不如说这是百度自己留下的一个后门。百度全系APP连同使用了百度地图的APP纷纷中枪,影响用户同样过亿。该后门之流氓程度与XcodeGhost相比有过之而无不及,包括静默下载任意文件、后台上传用户文件等各种流氓行径。

下面就来分析一下 WormHole 漏洞吧

Read More