随笔分类 -  iOS开发

oc
摘要:对于一个很常用的两个库, MJRefresh 如何可以像 UIButton 使用方式呢: Rxswift 中的很多类似处理的方式都使用了跟下面极为相似的代码, 进行针对UIControl的适配时,是通过一个中间层ControlTarget来完成的,为了保持这个ControlTarget实例的存活,使 阅读全文
posted @ 2017-11-04 17:45 OHeroJ 阅读(1509) 评论(0) 推荐(0)
摘要:场景: 项目中类名过长,造成不能根据文件名区分出来,并且如果一个模块的类较多时,很难取一个比较优雅的名字。为了使模块名可读, 我们一般的做法就是添加模块前缀。但是如果模块中还有个子模块,如果还继续按这种方法的话,这个文件名就会特别的长。 1. 一级 (Me Module) MeMainControl 阅读全文
posted @ 2016-05-22 07:15 OHeroJ 阅读(1354) 评论(1) 推荐(1)
摘要:首先直入正题:@IBInspectable & @IBDesignable 对于 @IBInspectable 和 @IBDesignable 可详见官方文档 : Creating a Custom View That Renders in Interface Builder   当然也可以阅读下中 阅读全文
posted @ 2016-03-13 22:29 OHeroJ 阅读(7687) 评论(0) 推荐(0)
摘要:资料整理: 怎样使用Swift创建命令行脚本(1) 怎样使用Swift创建命令行脚本(2) 命令行 :https://github.com/Swiftline/Swiftline 阅读全文
posted @ 2016-02-15 17:50 OHeroJ 阅读(293) 评论(0) 推荐(0)
摘要:UITextField 相关细节处理:1. 设置leftView , rightViewlet leftView = UIView() // 设置leftView/rightView之后,勿忘设置leftViewMode/rightViewModetextField.leftView ... 阅读全文
posted @ 2015-12-20 16:43 OHeroJ 阅读(392) 评论(0) 推荐(0)
摘要:之前没有用过git管理代码, 现在 公司要求使用git,咱 就 记记 今天所学的东西。以后也好方便查阅 和补充。 首先 我描述一下我今天提交代码的情况。 同伴给了我一个 从git库下来的2个项目的包。我现在要做的是从开一个库,然后把这两个包放到这个我自己建的远程库中。 首先我在Gitl... 阅读全文
posted @ 2015-10-30 18:47 OHeroJ 阅读(214) 评论(0) 推荐(0)
摘要:1. 定义一个协议, 一个协议可以扩展子另一个协议 如果需要扩展多个协议中间使用逗号分隔 //定义一个协议 @protocol AnimalDelegate <NSObject, @required //必须实现的方法 (void)eat; @optional //可选实现... 阅读全文
posted @ 2015-10-27 21:47 OHeroJ 阅读(661) 评论(0) 推荐(0)
摘要:runtime runtime用在什么地方?1. 说法 1. 在程序运行过程中,动态的创建一个类(比如KVO的底层实现) 2. 在程序运行过程中,动态地为某个类添加属性、方法,修改属性值\方法(method swizzing) 3. 遍历一个类的所有成员变量(属性)\方法 例如:我们需要对一个... 阅读全文
posted @ 2015-10-13 17:45 OHeroJ 阅读(931) 评论(1) 推荐(1)
摘要:LLDB是LLVM下的调试器。Xcode从4.0开始编译器开始改用LLVM,相应的调试器也从gdb改为LLDB。1. p 用于输出基本类型2. po 用于输出Objective-C对象3. expr 可以在调试动态实行指定表达式,并将结果打印出来。常用在调试过程中修改变量的值4. call 调用 c... 阅读全文
posted @ 2015-10-06 17:24 OHeroJ 阅读(490) 评论(0) 推荐(0)
摘要:1. Stopping a Timer 关闭定时器if you create a non-repeating timer, there is no need to take any further action. It automatically stops itself after it fire... 阅读全文
posted @ 2015-09-23 14:36 OHeroJ 阅读(467) 评论(0) 推荐(0)
摘要:以前没怎么了解过这个NSTimer,其实还是有挺多坑的,今天来总结一下:首先我们一起来看这个:我在A -> (push) -> B控制器,然后再B控制器中开启了一个NSTimer。然后我又pop到Apop到A的时候,定时器还在运行,并且B没有被释放(未调用dealloc)。why?这就不得不让我联想... 阅读全文
posted @ 2015-09-22 12:52 OHeroJ 阅读(2231) 评论(0) 推荐(0)
摘要:// 当创建一个线程,并且希望它一直存在时,但往往我们创建的线程都是执行完成之后也就停止了,不能再次利用,那么如何创建一个线程可以让他可以再次工作呢,这个时候就需要使用到RunLoop了。下面的是我写的一个例子:#import "LongThreadDemoController.h"@interfa... 阅读全文
posted @ 2015-09-14 11:45 OHeroJ 阅读(3529) 评论(0) 推荐(0)
摘要:在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量反正读第一遍的时候我是有点晕的,可以添加“属性”,然后又说“添加实例变量”,第一感觉就好像 有点自相矛盾了。那么我们谈谈:什么是实例变量? 实例变量就是一种变量,可以存放数据的。在oc上,形... 阅读全文
posted @ 2015-08-18 12:44 OHeroJ 阅读(3785) 评论(1) 推荐(0)
摘要:以前有个学员在学C语言时说,”C语言很多地方都很奇怪,都得用内核的知识去解释,可是你又不先教我内核,我没法学C语言。我只好自己看操作系统的书,看内核代码,可是看不懂。”当然看不懂了,内核代码都是用C写的,如果不学内核就没法学C语言,那不学C语言又怎么可能看懂内核?看来这是一个鸡生蛋还是蛋生鸡的问题。... 阅读全文
posted @ 2015-08-14 18:30 OHeroJ 阅读(329) 评论(1) 推荐(0)
摘要:dispatch_queue_t serialQueue = dispatch_queue_create("com.lai.www", DISPATCH_QUEUE_SERIAL); dispatch_async(serialQueue, ^{ // NSLog(@"1")... 阅读全文
posted @ 2015-08-13 12:58 OHeroJ 阅读(16435) 评论(2) 推荐(0)
摘要:lazy顾名思义就是慢吞吞的,万非得一就不动。那么一个变量也是如此,只有你第一次使用的时候才进去加载。所有又称为延迟加载,需要的时候才加载。=========这样做的好处:1. 模块化,把对象的代码都写在了get方法中,代码的可读性更强。2. 占用内存小【在某些情况下,不一定该对象一定要创建】,按需... 阅读全文
posted @ 2015-07-08 23:05 OHeroJ 阅读(404) 评论(0) 推荐(0)
摘要:今天有个朋友问了我一个问题:为什么我安装cocoapods不成功,报sh: line 1: 997 Abort trap: 6 /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk / -find git 2> /dev... 阅读全文
posted @ 2015-07-08 15:44 OHeroJ 阅读(948) 评论(2) 推荐(0)
摘要:观 :http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/ 的总结:1.调用方法的本质:[receiver message]:---- objec_msgSend(receiver,selector)如果有参数 ------obj... 阅读全文
posted @ 2015-05-10 08:47 OHeroJ 阅读(405) 评论(0) 推荐(0)
摘要:1.Masonry 创建constraint来定义布局的方式: 1.1、 mas_makeConstraints : 你可以使用局部变量后者属性来保存以便下次应用它 1.2、 mas_updateConstraints: adding/updating 有时候你需哟啊更新constraint,而... 阅读全文
posted @ 2015-05-09 22:51 OHeroJ 阅读(301) 评论(0) 推荐(0)
摘要:V2版本和V3版本存在很大的差异。1. 从成功通过微信支付商户的资料审核返回的邮件开始:你可以获得这些参数 appid,appSecret,partnerID, partnerKey(从平台上获得) 。在v3中你获得不到v2所谓的“paySignKey”,--------- 这个把我害残了。当然在... 阅读全文
posted @ 2015-04-22 17:17 OHeroJ 阅读(540) 评论(1) 推荐(0)