自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 runtime methedSwizzling方法交换深入浅出,深刻分析NSArray的safe方法能否替换系统方法

1.声明: 学习底层的过程不止是装逼,更多的是学以致用,举一反三。               本文观点均为个人观点,不对之处,欢迎指教。一:什么是方法交换。1.图中我们假设这是ViewController类的数据结构图,中分别解释下图中的A,B,C.A:就是ViewController类。B:  里面藏着ViewController分类的方法列表。C:ViewController宿主类(不是分类...

2018-05-16 15:37:48 833

原创 iOS runloop的深入浅出,runloop的理解看这里就够了

一:什么是runloop事件循环,绝对不止是死循环这么简单的一个回答。实质上就是runloop内部状态的转换。1.用户态:应用程序都是在用户态,平时开发用到的api等都是用户态的操作2.内核态:系统调用,牵涉到操作系统,底层内核相关的指令。实际上是计算机内部进行的资源调度操作。1.等待:其实就是用户态-内核态的转换。事件循环不是while死循环,而是状态转换,切记。二:runloop的数据结构NS...

2018-04-27 18:17:56 3656

原创 iOS开发 在图片上添加文字,图片合成文字,图片上添加富文本,美图秀秀,美颜相机文字编辑

一:前言 1.0  :在图片上增加文字,是图片编辑中非常常见的需求。 1.1 :无demo说话不硬气,上github地址:https://github.com/horisea/PictureWhitening               欢迎star,你的星星是我持续创作的动力二:上一下效果图下面我们看一下功能: 1.首先文字的颜色是

2017-04-21 17:32:08 7896

原创 手把手教你iOS如何调用React Native,即是iOS与RN的交互,将推送数据传递RN

RN调用iOS本文要做的事情:iOS将推送数据,调用RN方法,进行数据传递。按步骤来,一定能成功的。。权威,文章会一直更新。疑惑:不了解RN怎么办,没事,RN代码自有前端人员写。。介绍:至于RN的介绍这里不多说了,,就为什么会出现iOS与RN的交互场景,这里阐述下。。RN出现的目的就是  1.能快速迭代产品   2.有原生的用户体验   核心就是调用原生的API  但是他也不是无所不能的,总有需要...

2017-01-07 18:16:48 13744 1

原创 iOS开发 最新的NSURLProtocol之webView的离线缓存,缓存webView,离线加载

一:前言:项目中整个一tab页因为需求变成了加载webView,没网情况下会一片白。。很多APP无网显示的是一张图片,笔者强迫症,坚决做到最好的用户体验,于是缓存了整个webview;  1. 想通过加载HTMLSting字符串缓存webView是不可行, [self.webView loadHTMLString:HTMLSting baseURL:nil];想走这条路的哥们这里说下,肯定是不

2016-12-22 17:22:09 6518

原创 iOS webView的高级用法之JS交互,js与oc的相互调用(JavaScriptCore)

重要的事情放前面 github地址:https://github.com/horisea/JSCallOCTest   欢迎star 前言:说起JS交互,很多童鞋会黯然色变,感觉很高深的样子。大部分小伙伴只知道一种,哪一种我也说说吧。   1.在webView中将要请求的时候,拦截URL,进行重定向,然而该场景实用有限,网上资料也很多下面说说另一种交互方式。- (BOOL)webV...

2016-08-12 15:24:43 17603

原创 iOS中最简单实用的自定义动态返回行高的cell,动态计算cell的高度

最简单实用的动态返回行高的自定义UITableViewCell

2016-07-25 18:32:45 13144

原创 iOS中自定义输入文本框的cell(UITextFieldCell)的使用技巧

一:开篇介绍    1.在iOS项目开发中,容易遇到各种个人信息填写。比如微信中设置个人信息,等。这种方式是尽兴控制器跳转,代理或者block传值,这种比较容易,符合常规的cell的应用场景。请继续往下看,后面更精彩!!!2.但也有很多场景是这种方式,如图所示,这是微信中个人中心的收货地址信息的填写,那么相比较这种cell就相比较难了一点。  2.1:先说一

2016-07-10 20:38:46 9315

原创 iOS 之应用性能调优的25个建议和技巧

注意:每在优化代码之前,你都要注意一个问题,不要养成”预优化”代码的错误习惯。时常使用Instruments去profile你的代码来发现需要提升的方面。Matt Galloway写过一篇很棒的如何利用Instruments来优化代码的文章。还要注意的是,这里列出的其中一些建议是有代价的,所建议的方式会提升app的速度或者使它更加高效,但也可能需要花很多功夫去应用或者使代码变得更加复杂,所

2016-02-23 12:48:46 2457

原创 runtime super和superClass的区别调用super方法深入浅出

如何使用super我们都知道。现在的问题是,它是如何工作的呢?首先我们需要知道的是super与self不同。self是类的一个隐藏参数,每个方法的实现的第一个参数即为self。而super并不是隐藏参数,它实际上只是一个”编译器标示符”,它负责告诉编译器,当调用viewDidLoad方法时,去调用父类的方法,而不是本类中的方法。而它实际上与self指向的是相同的消息接收者。为了理解这一点,我们先来...

2018-04-02 17:15:43 450

原创 关于OC和Swift混编MJExtension第三方库莫名出错问题Property has a previous declaration

一:概述。   项目中用了MJExtension第三方库,今天合并了同事的代码,突然就报错了。上图 说属性重新定义了。二:解决思路;  1.MJExtension里的内容我肯定事没动的,那么怎么会出问题。源码不能动。 2.查资料,都是MJExtension的用法。三:解决办法    将项目中#import "MJExtension.h"的部分,全部替换成 

2018-01-24 17:18:12 2881

原创 程序员们,你想过以后不敲代码的日子吗(下)

25岁小吗,即使你没成家立业,但是,你真的不小了。       25岁的时候你不多想想,等到30岁后再去想吗。       25岁你不开始慢慢走出来,非要等到30随后吗。       最近大家都说35岁中年危机,说的你20多岁很成功一样。人家成功人士遇到中年危机都怕。我们这些小喽啰难道不应该多想想吗。       穷真的不怕,怕你还没脑子。不

2018-01-05 11:30:43 4252 5

原创 UILabel设置属性字符串,可以增加点击事件点击

1.首先啊,label可以设置属性字符串,设置不同的字体颜色,字体大小,但是要增加点击事件,不好操作。2.所以文章是设置textView来完成的。- (UITextView *)textView { if (!_textView) { _textView = [[UITextView alloc] init];// NSMutableAttr

2017-12-29 11:46:06 3898

原创 iOS开发屏幕截屏,超出屏幕截屏处理

/// 根据一个View生成一个image+ (UIImage *)imageFromSnapShotView:(UIView *)view {    UIImage *image = nil;    if ([view.classisSubclassOfClass:[UIScrollView class]]) {        UIScrollView *scrool

2017-12-28 17:56:33 1146

原创 程序员们,你想过以后不敲代码的日子吗(上)

打工是不可能打工的,做生意又不会。那就只能靠手艺吃饭了,我就偷电动车咯。      打工是必须要打得,但是总不能打一辈子的工。                                       前不久在贴吧,看到个贴子,内容大致是这么写的。      王哥,34岁。离职前职位:北京市某街道办副主任;

2017-12-28 16:24:28 6398

原创 关于网络请求用到的东西

https://mp.weixin.qq.com/s/5nyTIUOcffHHktxDX3nl6A

2017-12-06 14:52:25 155

原创 iOS 借贷类 马甲包 等上架经验

http://www.jianshu.com/p/e87d8e87d240

2017-12-06 10:05:40 5236

原创 iOS开发打包的种类,我的理解

1.个人账号,公司账号打包。    1. 介绍:       这些都是用来上传APPStore用的。99刀。区别是公司账号会有一些相关资质。           比如公司账号有金融资质,就能上架金融相关的产品。而个人账号泽不行。       2. 用途:      当然是打包咯:一般打两种包。           前提:          1.创建C

2017-12-05 17:21:46 753

原创 Swift和Objective-C混编桥接文件设置

1.桥接文件的设置stockiosoc/SCYRegistAndLogin/View/stockiosoc-Bridging-Header.h路径 :工程目录/所在路径     注意:名字是工程目录-Bridging-Header              该文件下,存放swfit中需要访问的OC的文件2. Objective-C Generated

2017-11-24 11:26:06 592

原创 iOS 无开发者账号怎么打包项目 供别人下载

前言:1.你没有开发者账号,于是就不能创建描述文件打包到蒲公英           2.需要安装的人不在你旁边,你不能真机调试。   辣么,该怎么办。。 1.编译你的项目,commod+R一下 2.找到项目的Products目录,找到下面的xxx.app,  show in finder,如下图。3.在桌面上,新建文件夹(名字自己起),将finder中的选中

2017-10-09 16:38:58 10027

原创 ipad开发中UIAlertController使用奔溃问题

加上红色部分的代码就ok了,具体原因,参考下面的博客,写的很详细。    [alertController addAction:sureAction];    [alertController addAction:cancelAction];    alertController.popoverPresentationController.sourceView = self.view;

2017-09-17 17:16:12 439

原创 iOS 你需要知道的团队代码规范,个人更应该规范

直接看这个博客吧,谨记。。幸好自己平时代码风格和规范相差不远 代码规范文章链接

2017-09-01 11:46:52 348

原创 iOS通过链接,应用内打开APP或者跳转APPStore对应下载

开文:很急着实现的话,请按照最后一句话操作。一:有一种是替换协议头,即是将 http:// 替换为 itms:// 或者 itms-apps://       然后通过       [[UIApplicationsharedApplication] openURL: itms:// 或者 itms-apps://后面跟上一堆];       但是这种应用场景比较有限

2017-08-31 10:47:17 21091

原创 swift3.0 如何优雅的自定义tableViewcell,最简单的自定义cell,闭包事件传递,代码封装。

一:最近在自学swift3.0,故而把OC中最简单自定义cell的方法,照搬到swift试试。 下面说下设计思想。     1.设计原理,提供接口。下面贴上控制器的代码     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { //

2017-08-31 09:53:43 2796

原创 程序员那么努力,到底是为了什么

一:生活不只是眼前的苟且,还有诗和南方一年前逃离了帝都北京,现在又扎进了很多人拼命挤进又奋力逃离的上海。  我为什么要来上海,最近我一直再问自己。  我喜欢江南,所以我喜欢上海。  喜欢上海的理由太多,但更多的是来自骨子里散发的那种对南方的喜欢。。20多年前,我出生在上海。。8岁之前,我都生活在上海,杭州,又或者是湖州。。也就是环太湖这一块,那个苏湖熟,

2017-08-10 17:42:15 1242

原创 Swift3.0 类似OC中#pragma mark 和 #waring的用法,大注释和警告的设置

一、swift代码实现OC中#pragma mark的效果,这个事系统自带的,不需要单独设置二:下面我们看下#waring的设置,这个需要手动添加脚本,如图标注三步走下面看下效果最后写下内容,复制粘贴即可TAGS="TODO:|waring:"echo "searching ${SRCROOT} fo

2017-08-10 17:29:00 529 1

原创 Swift3.0 Swift中cell分割线靠左对齐,cell基类封装

一:如OC一样,swift中cell的分割线也是默认缺了左边一点,那么如何让分割线左对齐呢      1.那么我们在自定义cell的基类中设置下,那么以后的cell都继承基类,以后都不会有分割线问题了    import UIKitclass SCYBaseTableViewCell: UITableViewCell { override func awakeFromNib(

2017-08-10 10:58:09 362

转载 Swift3.0——Swift中下划线的妙用,_的用法

在Swift中,下划线有很多妙用,这里将已经看到的妙用进行总结,希望可以帮助更多学习Swift的朋友。    @Author: twlkyao转载或者引用请保留此行。    1.格式化数字字面量    通过使用下划线可以提高数字字面量的可读性,例如:[plain] view plain copy print?let paddedD

2017-08-09 15:30:48 425

原创 【军师联盟】--鬼才(军师祭酒)郭嘉郭奉孝(如何成为领导最信任的人)

引言:      郭嘉(170年-207年),字奉孝,颍川阳翟(今河南禹州)人。东汉末年曹操帐下著名谋士。   后人多称鬼才郭奉孝,更是有很多郭吹着,流行一句话, 郭嘉不死,卧龙不出。 笔者愚见,我认为郭嘉的待遇一生比诸葛亮好太多了。诸葛心太累。     曹操对郭嘉的信任永远是无人能敌的。对郭嘉可谓是言听必从。。相反,刘备最信任的谋士,永远都不是诸葛亮。。(法正第一,庞统第二),只是弥

2017-07-18 11:09:05 1385

原创 iOS 最简单解决事件冲突的思路,深入浅出cancelsTouchesInView属性

引言:其实在手势解决问题,根据笔者经验,一般用好UITapGestureRecognizer 的cancelsTouchesInView属性,很多问题就能解决了。。问题:在一个tableView的布局上,有点击tableView收回键盘操作,点击cell的事件,自定义cell可能有按钮的点击事件。。那么当这些问题都同时存在的时候,你想过怎么解决问题吗。。或者根据需求,设置不同的事件优先

2017-07-18 10:27:46 2844

原创 iOS开发 UITableview的registerClass : forCellReuseIdentifier:的用法

1.控制器中写入代码。- (void)viewDidLoad { [super viewDidLoad]; [self.tableView registerClass:[yourCustomCell class] forCellReuseIdentifier:ruleCellidentifier];}那么在布局cell的方法中就可以省略 static NSSt

2017-07-17 10:55:50 191

原创 iOS7 UIWebView设置支持加载HTTPS请求

直接复制拷贝就可以了

2017-07-17 10:07:36 1546

原创 【三国风云】-刘备的艰苦创业发家之路

前言:在这个创业巨难的时代,(你可以百度下败家排行榜,卖房创业第一,卖房炒股第二,炒股第三,创业第四)。不禁想起1千多年前,刘老板白手起家的历程.下面我们已时间为节点。一:首先要脸皮厚。      刘备,刘老板,姓刘。小时候靠卖草鞋卖草席为生。。然而呢,他自称是中山靖王之后,(中山靖王刘胜喜好酒色,生有一百二十多个儿子),看到没有,选了一个生了120多个儿子的,然后又经历那么多代,鬼知道他

2017-07-06 18:31:51 697

原创 2017年中总结-小海

2017年中总结-小海  不管你是做什么的,那么多读书多写作总归事件好事。记录下太多事情,回头看时,才能更好的比较,更好的反思。哪些值得骄傲,哪些值得深思。  先把16年年底写出的17年奋斗目标贴出来,然后一条条过。  二逼青年欢乐多。  一.第一条,没完成。今年也不可能完成,以后也不可能完成。10年后我再做这件事。  

2017-07-05 16:35:54 437

转载 iOS应用架构谈(5) 组件化方案

简述前几天的一个晚上在infoQ的微信群里,来自蘑菇街的Limboy做了一个分享,讲了蘑菇街的组件化之路。我不认为这条组件化之路蘑菇街走对了。分享后我私聊了Limboy,Limboy似乎也明白了问题所在,我答应他我会把我的方案写成文章,于是这篇文章就出来了。另外,按道理说组件化方案也属于iOS应用架构谈的一部分,但是当初构思架构谈时,我没打算写组件化方案,因

2017-07-05 10:33:59 458

转载 iOS应用架构谈(4) 本地持久化方案及动态部署

前言嗯,你们要的大招。跟着这篇文章一起也发布了CTPersistance和CTJSBridge这两个库,希望大家在实际使用的时候如果遇到问题,就给我提issue或者PR或者评论区。每一个issue和PR以及评论我都会回复的。持久化方案不管是服务端还是客户端,都是一个非常值得讨论的话题。尤其是在服务端,持久化方案的优劣往往都会在一定程度上影响到产品的性能。然而

2017-07-05 10:31:20 306

转载 iOS应用架构谈(3) 网络层设计方案

前言网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用。其它的ASIHttpRequest,MKNetworkKit啥的其实也都还不错,但前者已经弃坑,后者也在弃坑的边缘。在实际的App开发中,Afnetworking已经成为了事实上各大App的标准配置。

2017-07-05 10:26:58 279

转载 iOS应用架构谈(2) view层的组织和调用方案

当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了,然后此时需要做非常彻底的重构。一般也就是这两种时机会去做View层架构,基于这个时机的特殊性,我们在这时候必须清楚认识到:View层的架构一旦实现或定型,在App发版后可修改的余地就已经非常之小了。因为它跟业务关联最为紧密,所以哪怕稍微动一点点,它所引发的蝴蝶效应都不见得是业务方能够hold

2017-07-05 10:18:59 283

转载 iOS-应用架构谈(1)开篇

缘由之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你会从哪些方面来说呢?当时看到这个问题正好在乘公车回家的路上,闲来无聊就答了一把。在zzz在微信朋友圈上追问了几个问题之后,我觉得有必要开个博客专门来讲讲一些个人见解。

2017-07-04 17:30:07 202

原创 iOS,论代码的整洁性,可读性,可修改性。

我也不知道从什么时候开始,对待编程,有了非常大的强迫症,对于不整齐整洁的代码,反正就是心理不爽。下面开始随便说说把。一.论代码的可读性。先上图,这是2016年5月份之前,在北京的一家公司上班的homeController代码片段,项目的最开始是有一位腾讯大牛写的代码。此项目15年起的,我曾经一度怀疑,这是腾讯写的代码,亦或者腾讯的人能允许同事写这样的代码。来我们

2017-07-04 16:43:31 501

提示
确定要删除当前文章?
取消 删除