Block 的递归调用 - How to implement recursive call block?

有的时候我们需要在 Objective-C 方法里定义一个 Block, 并且这个 Block 还会递归调用自己。那有人就会问了,为什么不开一个函数用函数的递归调用呢?因为这个 Block 会引用到许多个 local variable,如果用函数调用的话,所有的值都要传入这个函数,将会非常难看,比如 // 注意,这段代码是错的 - (void)outerFunc { __block NSInteger localVar1 »

适配 iOS 9 所需要做的一些事情

App Transport Security iOS 9 和 OS X Captian 带来了一个新的安全特性,也就是 App Transport Security,加强了应用中所谓网络连接的安全性。下面是 ATS 默认的安全要求: The server must support at least Transport Layer »

NSNotification Hell

今天我要把 Cocoa Pattern 中的通知中心 (NSNotificationCenter) 给批判一番。不对,应该是说把滥用通知中心的行为给批判一番。 Cocoa 中常用的对象之间交互的方式有这么几种: Target-Action Delegate Callback Notification KVO 其中只有 Notification 和 KVO 是一对多的交互方式,而 Notification 是松耦合的 (Loose Coupling),意味着通知的发送者和接收者可以不知道对方。 »

在西安乐橙实习的3个月

3个月前经历了一波电话实习面试后,签了几个暑期之后再实习的offer。然后我想现在离暑假还有将近4个月呢,学校的课程那么少又无聊,待在学校肯定没事干,还不如先在西安找一个实习工作呢!恰好这时看到了飞饭(西安乐橙)发的 iOS 招聘帖,果断投了,当天就收到了面试邀请。 第二天来到公司先和 HR 小聊了一下,然后就直接让一个 iOS 技术负责面我了,他就问了我几个基础的问题(很基础的,所以具体是什么我忘了),让我介绍了一下项目经历,于是就跟我聊人生理想了。之后又一起和技术总监聊了一会,现场就确定了offer, »

统一Ping++支付回调代码的着陆点

最近在给公司的产品做第三方支付用到了Ping++,阅读ping++的 SDK 文档后发现对于不同的支付方式、不同的软件环境,支付结果的回调点并不一样。 Ping++发起支付请求是用这个方法: [Pingpp createPayment:charge viewController:viewController appURLScheme:kUrlScheme withCompletion:^(NSString *result, PingppError *error) { if ([result isEqualToString:@"success"]) { // 支付成功 »