自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

转载 Carthage 包管理工具,另一种敏捷轻快的 iOS & MAC 开发体验

原文链接说起 iOS 开发的包管理,大家就不由得会想起 CocoaPods, 它确实是一个强大的工具。但这次咱们来关注另外一个包管理工具 Carthage,如果说 CocoaPods 像一个航母,一应俱全,坚实稳固。那么 Carthage 就像一艘巡洋舰,机动灵活,攻击迅速。Carthage 和 CoaoaPods 的区别CoaoaPods 是一套整体解决方案,我们

2017-05-25 12:32:03 1505

转载 ReactiveCocoa 学习之路(史上最全攻略)

原文链接本文介绍的是史上最牛叉的ios开发新框架之一,最大的特点就是:直观和灵活。直观的代码容易编写、阅读和维护,灵活的特性便于应对变态的需求,当然最重要的还是高效。各路大神(阳神,喵神,唐神等等)都不吝啬对它的赞美之词,而且该框架已被美团等广泛使用,好用的不要不要的..。本文主要介绍本人在学习ReactiveCocoa的时候的学习过程以及对一些学习资料的总结,欢迎大家批评发炎。闲话不

2017-03-15 16:41:14 1329

转载 Quartz 2D编程指南之十三:PDF文档的创建、显示及转换

链接

2017-03-10 14:51:15 664

转载 iOS 保持界面流畅的技巧

原文链接这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。Index演示项目屏幕显示图像的原理卡顿产生的原因和解决方案CPU 资源消耗原因和解决方案GPU 资源消耗原因和解决方案AsyncDisplayKitASDK 的由来ASDK 的资

2017-03-08 12:02:32 500

转载 iOS宏和__attribute__

转载自iOS宏的经典用法Apple的习惯__attribute__iOS宏的经典用法1.常量宏、表达式宏#define kTabBarH (49.0f)#define kScreenH [UIScreen mainScreen].bounds.size.height#define isScreenWidthEqual320 (fabs([UIScreen m

2017-03-06 14:17:42 631

转载 正则表达式在iOS中的运用

原文链接一、什么是正则表达式      正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。二、正则表达式的语法看一个过滤纯数字的例子- (BOOL)validateNumber:(NSString *) t

2017-02-27 15:18:49 248

转载 UIKit Dynamics入门

原文链接这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息。本文涉及到的WWDC2013 Session有Session 206 Getting St

2017-02-03 15:29:41 341

转载 iOS7中的ViewController切换

原文链接这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息。本文涉及到的WWDC2013 Session有Session 201 Building

2017-02-03 15:12:48 279

转载 2015 Objective-C 新特性

原文链接Overview自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时,也有很多像我一样工作上依然需要坚守着 Objective-C 语言的开发者们。今年的 WWDC 中介绍了几个 Objective-C 语言的新特性,还是在“与 Swift 协同工作”这种 Topic

2017-01-05 10:41:27 262

转载 深入理解Objective-C:Category

原文链接摘要无论一个类设计的多么完美,在未来的需求演进中,都有可能会碰到一些无法预测的情况。那怎么扩展已有的类呢?一般而言,继承和组合是不错的选择。但是在Objective-C 2.0中,又提供了category这个语言特性,可以动态地为已有类添加新行为。如今category已经遍布于Objective-C代码的各个角落,从Apple官方的framework到各个开源框架,从功

2016-12-06 17:36:50 578

转载 如何打造一个让人愉快的框架

原文链接这是我在今年 1 月 10 日 @Swift 开发者大会 上演讲的文字稿。相关的视频还在制作中,没有到现场的朋友可以通过这个文字稿了解到这个 session 的内容。虽然我的工作是程序员,但是最近半年其实我的主要干的事儿是养了一个小孩。 所以这半年来可以说没有积累到什么技术,反而是积累了不少养小孩的心得。 当知道了有这么次会议可以分享这半年来的心得的

2016-11-25 19:26:49 364

转载 Xcode8新增Debug方法

原文链接今年的WWDC介绍了不少新的调试方法,可以更加快捷便利的定位问题、分析问题、解决问题,下面就简单介绍一下。循环布局检测当你进入某个界面或点击某个按钮后,发现屏幕不再响应事件,然后进入无限等待,debug下可以看到CPU满负荷,RAM也不断增加,那么有可能就进入了循环布局状态。举个栗子先说一个简单的循环布局的case,如下图所示。最

2016-11-24 17:08:01 1118

转载 Xcode 使用 Configuration 来配置不同的项目环境

原文链接很多项目在开发时都会经常在开发环境和生产环境之间切换,切换随之伴来的还有比如更换 App 名称、Bundle identitier、服务端接口地址等等相关参数和属性,这个时候我们就可以利用 Xcode 提供的 Configuration 来配置不同的环境,从而进行快速切换、编译等等一系列操作。注: Xcode 中 Build Settings 的所有项都可以针对

2016-11-24 16:57:51 289

转载 用 SQLite 和 FMDB 替代 Core Data

原文链接凭良心讲,我不能告诉你不去使用 Core Data。它不错,而且也在变得更好,并且它被很多其他 Cocoa 开发者所理解,当有新人加入你的团队或者需要别人接手你的 app 的时候,这点很重要。更重要的是,不值得花时间和精力去写自己的系统去代替它。使用 Core Data 吧。真的。为什么我不使用Core DataMike Ash 写到:就个人

2016-11-10 21:26:25 269

转载 NSURL 的这些特性你注意到过吗

原文链接NSURL 大家并不陌生,在进行网络相关的操作时,避免不了要使用它。 除了我们平常的使用, 它还有一些别的特性,这里跟大家交流一下。NSURL 可以操作本地文件我们通常理解的 URL,是指向一个服务端资源的。 但 NSURL 还可以指向本地文件:if let documentRoot = NSSearchPathForDirectorie

2016-08-31 17:05:21 357

转载 WWDC之优化App启动速度

原文链接前言在WWDC 2016上首次提到了关于App应用启动速度优化的话题:Session 406 Optimizing App Startup Time .该Session上Apple建议一个App完整的启动时间应该保证400ms之内,而若超过20s后还未完全启动App,那么App进程就会被系统杀死.而如何Debug和优化应用启动的时间,官方提出一系列方法来关注应用启动

2016-08-31 16:46:45 3066

转载 手把手教你给一个iOS app配置多个环境变量

原文链接前言谈到多环境,相信现在大多公司都至少有2-3个app环境了,比如Test环境,UAT(User Acceptance Test)用户验收测试环境,Release环境等等。当需要开发打多个包的时候,一般常见做法就是直接代码里面修改环境变量,改完之后Archive一下就打包了。当然这种做法很正确,只不过不是很优雅很高效。如果搭建好了Jenkins(搭建教程),我们利用它来优雅

2016-08-23 19:18:58 2823

转载 结合 category 工作原理分析 OC2.0 中的 runtime

原文链接绝大多数 iOS 开发者在学习 runtime 时都阅读过 runtime.h 文件中的这段代码:struct objc_class { Class isa OBJC_ISA_AVAILABILITY;#if !__OBJC2__ Class super_class OBJC2_

2016-08-03 17:06:06 350

转载 你或许应该知道的LLVM

原文链接作为iOS或者Mac开发者,你也许非常眼熟LLVM这个字眼,但也许没有太去在意它。在很长的一段时间内,我就是处于这个状态,不知道它背后是在干嘛。随着苹果新语言swift的发布,我看到“Swift 是克里斯在 LLVM 和 Clang 之后第三个伟大的项目”,可见,这门swift的出现是建立在LLVM和Clang的基础之上的。激发我对于LLVM等的好奇,于是进行了一些探索研究学习

2016-07-04 18:57:30 14314 1

转载 iOS SDK详解之NSCalendar & NSDate​Components

原文链接前言:NSCalendar 和 NSDate​Components是有关iOS 时间相关API很重要的两个类。最近刚好用到,这里就整理下。概念NSCalendar 顾名思义就是日历,封装了系统如何按照年月日的方式来组织时间,组织时间的方式和地区,时区有很大关系NSDate​Components 只是一个容器,容器中详细包含了年月日时分等信息。NSDate 就是一个绝

2016-06-16 17:06:04 559

转载 优化UITableViewCell高度计算的那些事

原文地址这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITableView 滑动优化的一个总结。我们也在维护一个开源的扩展,UITableView+FDTemplateLayoutCell,让高度计算这个事情变的前所未有的简单,也受到了很多星星的支持,github链接请戳我这篇总结你可以读到:UITabl

2016-06-13 16:27:19 293

转载 App Transport Security(ATS)

原文链接最近下载iOS 9 GM版,然后跑了下我们的应用,发现有些网络请求失效了。先前在WWDC 2015上了解到iOS 9将要求网络请求使用HTTPS协议,但一直没有在iOS 9 beta版上跑过。现在这个问题突显出来了,所以搜了一些博文研究了一下。我们知道,Apple在安全及用户隐私方面做了很多工作,包括沙盒机制、代码签名、禁用私有API等。而在今年6月份的

2016-06-13 16:12:34 261

转载 使用_ObjectiveCBridgeable协议实现Objective-C类与Swift结构体的无缝互转

原文链接我们知道在Swift中,可以在NSArray与Array之间做无缝的转换,如下所示:1234567891011let mobile = ["iPhone", "Nokia", "小米Note"]let mobile1 = (mobile as NSArray).objectAtIndex(1)print(mobi

2016-06-13 16:07:57 937

转载 Objective-C Runtime 运行时之六:拾遗

原文链接前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容,需要读者去研究发现。supe

2016-06-13 16:01:22 256

转载 Objective-C Runtime 运行时之五:协议与分类

原文链接Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“delegation”模式,@protocol声明了可以呗其他任何方法类

2016-06-13 15:59:58 295

转载 Objective-C Runtime 运行时之四:Method Swizzling

原文链接理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现。

2016-06-13 15:58:37 224

转载 Objective-C Runtime 运行时之三:方法与消息

原文链接前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:typedef struc

2016-06-13 15:56:46 743

转载 Objective-C Runtime 运行时之二:成员变量与属性

原文链接在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)作为对Runtime的补充,编译器将每个方法的返

2016-06-13 15:54:47 267

转载 Objective-C Runtime 运行时之一:类与对象

原文链接Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统

2016-06-13 15:52:59 304

转载 KVO 和 KVC 的使用和实现

原文链接了解 KVO/KVCKVO/KVC 是观察者模式在 Objective-C 中的实现,以非正式协议(Category)的形式被定义在 NSObject 中。从协议的角度看,是定义了一套让开发者遵守的规范和使用的方法。在 Cocoa 的 MVC 框架中,架起 ViewController 和 Model 沟通的桥梁。// "NSKeyValueObservin

2016-06-13 14:59:30 343

转载 git 命令自动补全

原文链接只需要完成下面两步,就可以实现在mac osx 下git 命令自动补齐首先下载自动补齐脚本,使用curl命令如下:curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash编辑.pr

2016-06-06 17:06:27 314

转载 Python---Image 模块

原文链接Image 模块Image 模块提供了同名的类用来表示PIL的图像。Image模块还提供了许多工厂(factory)函数,包块从文件加载图像的函数,以及创建新图像的函数。 例子 下面的脚本加载了一个图像,并把它旋转了45度,然后调用外部的查看器(通常在Unix下是xv,Windows下是paint)。 打开,旋转,和显示图像(使用默认的查看器) 

2016-05-16 11:19:05 538

转载 Content-Type的几种常用数据编码格式

原文链接Content-Type,内容类型,一般是指网页中存在的Content-Type,ContentType属性指定请求和响应的HTTP内容类型。如果未指定 ContentType,默认为text/html。1.text/html文本方式的网页文件。2.text/plain窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。空格转换为 “+”

2016-05-09 16:28:52 2762

转载 NSAttributedString那点事

原文链接之前做项目时遇到一个问题:     使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结果在XCode中查遍其所有属性才发现,UITextView居然没有调整行间距的接口,于是忍住不心里抱怨了一下下。     但是问题还是要解决的,上网一查才发现,iOS不仅有富

2016-04-28 11:02:01 2214

转载

转载自:casatwy的博客啰嗦一下模块化开发不光要求代码级的模块化,比如区分各种功能,然后把功能的实现分散在各个对象或文件。大部分情况也要求部署级的模块化,使之能够通过使用库的方式模块化加载,模块化部署。在这一波"模块化"大潮中,各种不同类型的库被广泛使用着。如果你希望你的程序能够支持插件功能,其本质也依旧是通过库来实现。其实库的本质是一堆函数实现的集合,他们

2016-01-18 11:05:50 426

转载 iOS安全系列之二:HTTPS进阶

转载自:Jaminzzhang的博客上一篇《iOS安全系列之一:HTTPS》被CocoaChina转载,还顺便上了下头条: 打造安全的App!iOS安全系列之 HTTPS,但那篇文章只是介绍了比较偏应用的初级知识,对于想要深入了解HTTPS的同学来说是远远不够的,刚好本人最近工作上也遇到并解决了一些HTTPS相关的问题,以此为契机,决定写这篇更深入介绍HTTPS的文章。本文分为

2016-01-18 10:42:40 948

转载 iOS安全系列之一:HTTPS

转载自:Jaminzzhang的博客如何打造一个安全的App?这是每一个移动开发者必须面对的问题。在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相比于Android来说要少得多,这就导致了许多iOS开发人员对于安全性方面没有太多的深入,但对于一个合格的软件开发者来说,安全知识是必备知识之一。对于未越狱的iOS设备来说,由于

2016-01-18 10:38:50 428

转载 IBInspectable / IBDesignable

原文链接展示,而不是描述。眼见为实。一图胜千邮件言。无论陈词滥调多少次,比起一个需要我们记住并且输入什么的界面来说,如果替换成我们能够看见并可控制的界面的话将会是巨大的进步。 Xcode 6 提供了这样一个替代,在旧技术上建立新的互动。在设计项目的时候建立一个自定义的界面使你可以配置自定义控制并将它们实时显示出来,用 IBInspectable 和 IBDesignable,这

2015-12-01 17:38:54 372

转载 IOS数sqlite3详细开发教程

iPhone中支持通过sqlite3来访问iPhone本地的数据库。具体使用方法如下1:添加开发包libsqlite3.0.dylib首先是设置项目文件,在项目中添加iPhone版的sqlite3的数据库的开发包,在项目下的Frameworks点击右键,然后选择libsqlite3.0.dylib文件。libsqlite3.0.dylib文件地址: /Developer/Pla

2015-08-14 11:43:21 374

转载 AFNetworking使用

AFNetworking是一个轻量级的iOS网络通信类库。它建立在NSURLConnection和NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单。它支持HTTP请求和基于REST的网络服务(包括GET、POST、 PUT、DELETE等)。支持ARC。Github地址:https://github.com/AFNetworking/AFNetworking 

2015-08-13 17:33:32 307

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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