更新:关于重构后增加的 bug 数量大家就不用多心了😂 我在团队是担任移动端 Leader 的,如果有重大失误,应该早就被拉出去祭天了吧。重构工作是两个月以前了的,结合这两个月的 issue 列表来看,引入的 bug 不多,最近在统计自己都做了什么工作,所以才把这篇文章分享出来。 以前做个人项目的时候,简历上写过重构了三次,后来在扇贝面试的时候,面试官问三次分别重构了什么,仔细想想那时候的重构并…
UITableView 是 iOS 开发中常用的一个控件,可惜他默认不支持横向滚动(其实是支持的,给 tableView 和 cell 的 contentView 分别 setTransform 二分之 M_PI即可) 但是为了更方便的定制里面的 cell,还是来手动实现一个横向滚动的 UITableView 吧,这次我们要实现一个跑马灯效果的横向滚动的 tableView,所以暂时取名叫 Bay…
static Static variable in class method is stored statically and can be initialized only once even if you call the method multiple times. - (IBAction)clickAction:(id)sender { static id sharedI…
convenience Convenience initializers are secondary, supporting initializers for a class. You can define a convenience initializer to call a designated initializer from the same class as the convenienc…
5 月份的时候写过一篇Objective-C 的 runtime 运行时(一)。 这次主要是说消息机制的。 上次我们说 runtime.age = 19; 转换成 objc_msgSend 就是 objc_msgSend((id)runtime, sel_registerName("setAge:"), (NSInteger)19); 大概是这么回事 id objc_msgSe…
简介 运行时的话,首先先了解下消息处理机制。 老样子,把 main.m 编译成 c++ 代码。 新建一个类,RuntimeTest RuntimeTest.h // // RuntimeTest.h // Block-Test // // Created by JieLee on 15/5/24. // Copyright (c) 2015年 PUPBOSS. All rights res…