自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jichw的专栏

不忘初心,方得始终。

原创 程序员能力矩阵 Programmer Competency Matrix

注意:每个层次的知识都是渐增的,位于层次n,也蕴涵了你需了解所有低于层次n的知识。 计算机科学 Computer Science - 2n(Level 0) n2(Level 1) n(Level 2) log(n)(Level 3) 数据结构 不知道数组和链表的差异 ...

2016-03-14 18:15:44 482 0

原创 开发资料

开源ReactNative项目列表 学习资料-书籍 iOS文章列表 iOS开源列表 Awesome iOS A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects Open-So...

2018-05-14 16:04:13 183 0

原创 Xcode插件和配色

xcode8+如何安装插件 Xcode插件安装方式: Github下载插件然后用xcode打开运行一遍,然后重启xcode。 安装插件管理Alcatraz,通过其来安装插件不需要到github一个个下载插件来运行,统一管理插件,省时高效直观 一些常用的高效插件 FuzzyAutoc...

2018-05-14 15:39:35 456 0

原创 webView内容高度,自适应高度

实现思路: webView加载H5链接,设置它为tableView的headerView,下方评论信息用Cell加载展示。 在webView的回调方法webViewDidFinishLoad中获取网页内容高度,设置为webView的高度,重新将webView赋给tableView...

2018-05-14 15:38:50 860 0

原创 UIViewAnimation动画与Core Animation的CATransition类动画

使用UIView类函数实现 // UIViewAnimationTransitionFlipFromLeft, 向左转动 // UIViewAnimationTransitionFlipFromRight, 向右转动 // UIViewAnimationTransitionCurlUp, 向...

2018-05-14 15:37:45 171 0

原创 UITableViewCell嵌套UIWebView

获取UIWebView高度 - (void)webViewDidFinishLoad:(UIWebView *)webView { // 如果要获取webView高度必须在网页加载完成之后获取 // 方法一 CGFloat height = [self.webView...

2018-05-11 17:36:21 200 0

原创 UIlabel的行间距和字间距

比如一个Label的默认间距效果是这样 然后用一个封装起来的Category来调整这部分文字的行间 [UILabel changeLineSpaceForLabel:cell.describeLabel WithSpace:5.0]; 调整后的效果是这样的 其中5.0就是我自定...

2018-05-11 17:35:18 1418 0

原创 UIButton的title和image

UIButton的默认布局是:title在右,image在左; 一种是设置UIButton的以下两个属性: // default is UIEdgeInsetsZero @property(nonatomic) UIEdgeInsets titleEdgeInsets; // de...

2018-05-11 17:34:37 323 0

原创 UIApplication(2)

每个app有且只有一个UIApplication对象,当程序启动的时候通过调用UIApplicationMain方法得到的。可以通过sharedApplication方法得到。 UIApplication对象的主要任务是处理用户事件的处理路径,例如分发一个UIEvent到另外一个对象去处理。UI...

2018-05-11 17:33:32 70 0

原创 UIApplication

UIApplication 类在整个App运行过程中,扮演一个中央处理和协调的工作,任何程序应该只有一个 UIApplication 实例。 当一个app 被推出时,系统会调用 UIApplicationMain 函数,在它的其它任务中,这个函数创建了一个单利 UIApplication 对象...

2018-05-11 17:31:49 84 0

原创 Scheme & Rewrite

原文地址 苹果核 - 解耦神器 —— 统跳协议和Rewrite引擎 题记:天猫App长大了,已经长成了流量以千万计规模的App,当下至少有10个团队在直接维护天猫App。在App长大,团队扩充的过程中解耦是一个永恒的话题,而界面解耦又是App架构的重中之重。 统跳协议是天猫App统一...

2018-05-11 17:31:19 130 0

原创 python中查看变量内存地址的方法

id(object) -> integer Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects. (Hint: it...

2018-05-11 17:30:43 11259 0

原创 Pod公共库

GitHub新建自己的git repository 将项目clone到本地 git clone git@github.com:xxx/xxx.git 初始化好项目,将Pod库文件建立好目录 给仓库创建个podspec文件 pod spec create xxx gi...

2018-05-11 17:29:49 184 0

原创 pip常见的使用方法

pip升级自己: $ pip install --upgrade pip 查找与安装: 使用search、install这两个参数。 安装到用户目录: $ pip install pkg_name --user 查看某个库的信息: $ pip show Jinja...

2018-05-11 17:29:04 2180 0

原创 Objective-C Runtime类的加载与初始化( load; initialize)

我们知道,iOS App的 main() 函数位于 main.m 中,这是我们熟知的程序入口,但是在这之前, 还要先进行加载 framework 、初始化 runtime 等操作, framework 的加载是由 dylb 调用的,关于 dylb ,这里不作探讨,感兴趣的同学可以看看这篇文章(dy...

2018-05-11 17:28:16 158 0

原创 NSPredicate

Cocoa用NSPredicate描述查询的方式 原理类似于在数据库中进行查询 // 基本的查询 NSPredicate *predicate; predicate = [NSPredicate predicateWithFormat: @&quo...

2018-05-07 10:35:30 253 0

原创 LLDB出现 message sent to deallocated instance

LLDB出现message sent to deallocated instance错误 本文在源文的基础上做整理: http://www.devdiv.com/home.php?mod=space&uid=50901&do=blog&id=50...

2018-05-07 10:33:45 253 0

原创 Masonry(二)

安装 直接进入github进行源码下载 使用CocoaPod 使用 要创建一个试图,距离上下左右都是10的这样一个约束使用Masonry的效果 UIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10); [view1 mas...

2018-05-07 10:32:55 338 0

原创 Masonry(一)

简介 Masonry is still actively maintained, we are committed to fixing bugs and merging good quality PRs from the wider community. However if you’re...

2018-05-07 10:32:08 462 0

原创 iOS如何做优化

今天来讨论下整体项目优化 本文只是提供了可以从哪些方面进行优化,没有对每个方向提供可参考的思路。 有的时候还是需要结合业务逻辑进行 画了个图整理下 参考以下数据(图片来自网络,侵删) 应用首次工作出错以后,79%的用户只会再重试一两次; 当应用载入时间超过...

2018-05-07 10:30:48 300 0

原创 iOS开发规范(OC)

语言 使用US英语 代码组织 在函数分组和protocol/delegate实现中使用#pragma mark -来分类方法,要遵循以下一般结构: #pragma mark - Lifecycle - (ins...

2018-05-07 10:29:54 295 0

原创 iOS国际化

程序国际化 准备工作: 首先我们要先创建一个工程,我们给他命名Internationalization-Demo,然后添加语言。 从代码中分离文本: 目前,应用展示的所有文本都是以硬编码字符串存在于Main.storyboard和 ViewController里。为了本地化这些...

2018-05-07 10:29:00 44 0

原创 iOS 网络优化

DNS查找时间 可以使用的工具 $ dig www.baidu.com $ traceroute www.baidu.com 最小化应用使用的专有域名的数量 如果子域名数量上升至两位数,我们需要仔细考虑这方面的优化了 冷启动时不必要链接的域名 ...

2018-05-07 10:28:22 120 0

原创 GitHub资料

iOS 常用的知识点总结 XAlign 功能强大,使用方便,可高度自定义的TabBarController 水波浪圆形进度控件,采用 CAShapeLayer,CADisplayLink 波浪动画,简单,流畅 ...

2018-05-07 10:27:20 118 0

原创 Git_Commit message & Change log

Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。 $ git commit -m "hello world" 上面代码的-m参数,就是用来指定 commit mesage 的。 如果一行不够,可以只执行git commit,就...

2018-05-07 10:26:38 489 0

原创 贝叶斯公式/贝叶斯法则/贝叶斯定理

介绍 贝叶斯法则 贝叶斯定理是用来做什么的?简单说,概率预测:某个条件下,一件事发生的概率是多大? wiki 把为什么要做这个定理谈的很清楚,是为了覆盖逆概的场景: 在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球...

2018-05-04 15:55:44 5991 1

原创 fastlane doc

文档 docs.fastlane.tools App Store Deployment iOS App Store deployment using fastlane [Building your app](iOS App Store deployment using fast...

2018-05-04 15:49:52 64 0

原创 CocoaPods的spec

pod setup用于初始化本地第三方库的Spec描述文件,所有的spec文件存都存放在~/.cocoapods目录中。 pod install用来安装或删除Podfile文件声明中的第三方依赖库。 $ pod list # 列出所有可用的第三方库 $ pod search quer...

2018-04-27 10:09:38 164 0

原创 Core Animation-壹

图层的内容动画 Core Animation提供的基础设施让轻松创建复杂图层动画变得异常简单,Core Animation扩展了所有拥有图层的视图。例如改变图层框架矩形的尺寸,改变其在屏幕上的位置,应用旋转变换,改变它的透明度。使用Core Animation初始化一个动画和改变属性一样简单,但...

2018-04-27 10:08:50 47 0

原创 CocoaPods 的安装

移除现有Ruby默认源 $ gem sources --remove https://rubygems.org/ 使用新的源 $ gem sources -a https://ruby.taobao.org/ 验证新源是否替换成功 $ gem sources -l...

2018-04-27 10:07:37 75 0

转载 CocoaPod 私有库

私有库用途 pods的出现极大的加速了iOS开发的速度,强大的包管理,以及强大的协作能力,让它极大的加快了我们的开发的效率。 除了开放的第三方库,我们需要自己的私有pod。比如开发项目时,我们可以结合git来形成新的开发模式。 通过这种形式,可以剥离出每一个模块,让模块之间的耦合率降到最低...

2018-04-27 10:05:59 95 0

原创 Charles Mac

HTTP抓包 打开Charles程序 查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:192.168.1.7 打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.16...

2018-04-27 10:04:50 227 0

原创 CGContextRef

CGContextRef An opaque type that represents a Quartz 2D drawing environment. Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的vi...

2018-04-27 10:02:42 48 0

原创 AOP/iOS中如何实现AOP

什么是AOP AOP:Aspect Oriented Programming,译为面向切面编程。 在不修改源代码的情况下,通过运行时给程序添加统一功能的技术。 我觉得其中有两层涵义: 第一:不修改源代码,即尽可能的解耦。 第二:添加统一的功能,即我们能实现的是添加统一的单一的功能...

2018-04-27 10:01:58 1430 0

原创 自定义 Xcode ViewController 类模板

Xcode 类模板 例如创建一个 UIViewController,一个 Category 等等,这些其实都是 Xcode 帮我们集成好的模板。 自定义 Xcode 类模板 当我们用 Xcode 自带的模板创建一个 UIViewController 的子类时,我们会...

2018-04-27 09:59:06 656 0

原创 在Mac OS X中配置Apache + PHP + MySQL

Mac OS X 内置Apache 和 PHP,使用起来非常方便。本文以Mac OS X 10.6.3和 10.8.1为例。 主要内容包括: 启动Apache 运行PHP 安装MySQL 启动Apache 有两种方法: 打开系统设置偏好(System Preferenc...

2018-04-27 09:58:04 254 0

原创 镂空文字、类歌词进度显示文字

Demo详见GitHub:JXTMarkLabel 镂空文字 - JXTHollowOutLabel 镂空文字效果的实现基于drawRect重绘,具体参考了两篇帖子: Drawing a path with subtracted text using Core...

2018-04-27 09:56:08 240 0

原创 断言Assertion

什么是断言 在程序设计中,断言(assertion)是一种放在程序中的一阶逻辑(如一个结果为真或是假的逻辑判断式),目的是为了标示与验证程序开发者预期的结果 -当程序运行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止运行,并给出错误消息。 使用断言 用...

2018-04-26 15:59:40 3550 0

原创 代码异味 (Code smells)

如果一段代码是不稳定或者有一些潜在问题的,那么代码往往会包含一些明显的痕迹。 正如食物要腐坏之前,经常会发出一些异味一样。 我们管这些痕迹叫做 代码异味 。 No.1 重复代码 (Duplicated Code) 解决方案: 同一个class内的两个函数含有相同的表达式。——需要E...

2018-04-26 15:57:20 471 0

转载 常用的正则表达式

正则表达式 正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。 正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代...

2018-04-26 15:49:39 92 0

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