iOS类方法load和initialize详解 iOS开发中总能看到+load和+initialize的身影,网上对于这两个方法有很多解释,官方也有说明,但有些细节不够清楚,今天我们来详细扒一扒这两个方法. loadApple文档是这样描述的 Invoked whenever a class or category is added to the Objective-C runtime; implement this method to per 2020-11-02
Jenkins + Fastlane + 蒲公英 + iOS 自动化构建 前言由于在项目的测试阶段,为了快速的测试需要频繁的打包发布,会耗费很多的时间。而且需要自己手动去配置很多证书和环境,在每次等待都备受煎熬,为了从这种折磨中脱离而出,便考虑使用持续化集成来进行自动打包。 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽 2020-10-26
LMForm - iOS表单配置框架 背景通常,将一个页面需要编辑/录入多项信息的页面称为表单。iOS 实现表单大多数基于TableView,麻烦的是需要在UITableViewDataSource或者UITableViewDelegate的代理方法中写很多if-else,与cell耦合严重,不易获取用户已编辑的数据。如果表单页面的配置数据从服务端返回,不易实现。 2020-10-12
iOS-消息转发机制 iOS开发过程中我们经常会碰到这样的报错:unrecognized selector sent to instance ** 原因就是调用一个该对象没有实现的方法。用OC消息机制来说就是:消息的接收者不过到对应的selector,这样就启动了消息转发机制,我们可以通过代码在消息转发的过程中告诉对象应该如何处理未知的消息,默认实现是抛出下面的异常 2018-06-27
Pod 私有库的创建及使用 前言CocoaPods是iOS项目的依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库,我们一般用的是公有库,代码存放在Github上。个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开源库一样在CocoaPods中管理它们,那么通过私有库来管理就很必要。 2018-02-12
iOS常见控件的封装(二):UIAlertViewController UIAlertViewController类在iOS开发中经常使用,但是使用系统方法需要太多的代码,所以我自己封装了一个类。在一个block中实现点击事件。 2016-10-24
iOS常见控件的封装(一):UIButton UIButton类在使用时需要一行行的来设置属性,代码过于冗余。每个点击事件都要创建一个方法,不利于阅读。下面就是我用block封装的UIButton的分类。 2016-10-17