iOS开发
文章平均质量分 72
乞力马扎罗的雪CYF
一只不孤独的猿。
展开
-
iOS开发——ActionSheet的使用与弹出选择对话框
在我们的iOS开发中,常会见到如下界面的需求:。也就是点击按钮,出现选择提示框,我们今天使用两种方式(ActionSheet和AlertController)来实现该功能。【使用ActionSheet实现】(1)实现代码如下:#import "ViewController.h"@interface ViewController ()@end@implementation ViewCon原创 2015-12-23 13:39:30 · 9251 阅读 · 6 评论 -
iOS开发——使用Charles进行http网络抓包详解
我在之前一篇博客《网络抓包工具Charles的介绍与使用》中简单介绍了Charles的安装破解,以及进行简单的Charles抓包配置的介绍。今天我们来详细介绍下使用Charles进行http抓包,关于https抓包,我将会在另一篇博客中介绍。(1)http抓包的配置,请参考《网络抓包工具Charles的介绍与使用》这篇博客。(2)为了使抓包的结果清晰,便于调试,我写了一个简单的网络请求,通过点击按原创 2015-12-23 21:48:08 · 7714 阅读 · 0 评论 -
网络抓包工具Charles的介绍与使用
在复杂的App开发过程中,我们会涉及各种复杂的网络操作,各种API的调用和数据接收。如果我们只是通过控制台来查看网络的输入输出,就会非常麻烦。在Mac上有一款非常优秀的网络抓包工具——Charles,在iOS开发中也是常常用到。今天我们就来介绍如何安装使用Charles。关于Charles安装包、破解包和证书我已经上传至网盘:http://pan.baidu.com/s/1numMoTr 。原创 2015-12-22 09:47:07 · 12014 阅读 · 10 评论 -
iOS开发——使用Charles进行https网络抓包详解
我在前面两篇博客中《网络抓包工具Charles的介绍与使用》《iOS开发——使用Charles进行http网络抓包详解》对Charles的http抓包进行了详细的讲解。今天我们来实现一下进行https的抓包,比http抓包稍微麻烦一点。(1)https初级的配置请参考《网络抓包工具Charles的介绍与使用》中的https配置部分。(2)由于目前iOS9更改了对于https网络的安全机制,所以还需原创 2015-12-23 22:34:39 · 7316 阅读 · 0 评论 -
iOS开发——界面跳转与返回及视图类型详解
iOS开发中界面跳转是必不可少的一个功能,一个完整的App必然是由多个界面组成的。我在这篇博客中将会较为全面的讲解在是否有导航的情况下进行跳转以及返回,并且对modal、push、custom等视图做一个介绍。代码我已经上传至:https://github.com/chenyufeng1991/NavigationTest 。 之前我也写过一篇关于导航栏的博客《iOS纯代码实现界面建立、跳转、原创 2015-12-06 15:35:17 · 10455 阅读 · 0 评论 -
iOS开发——单例的实现、使用与架构
单例在我们开发中是最常用的设计模式,在iOS中也是如此。单例可以保证某个类的实例在程序中是唯一的,便于进行资源和数据的共享。使用的设计原则是单一职责原则。我们来看看在iOS中本身自带的类或者方法哪些使用了单例的模式:(1)UIAccelerometer类和sharedAccelerometer方法,一般如果方法名中有shared这样的词,就可以认为这是一个可以整个应用程序共享的实例变量,一般是使用原创 2015-12-24 22:08:44 · 8391 阅读 · 5 评论 -
关于使用AFNetworking3.0.0报错的解决方案与建议
最近,AFNetworking迎来了重大更新,从之前的2.6.3升级到了3.0.0 。下面是AFNetworking的版本情况:. 从上面可以看到,里面包含Serialization,Security,Reachability,NSURLSession,UIKit5个部分,从Cocoapods安装之后,3.0.0目录结构如下:。 但是使用3.0原创 2015-12-12 10:22:07 · 5310 阅读 · 0 评论 -
更新Xcode出现"使用libswiftCore.dylib插件时Xcode意外退出"解决方案
今天我从Xcode7升级到了Xcode7.2,升级速度很慢,花了一个多小时。升级完成后,不能打开,报了以下警告:"使用libswiftCore.dylib插件时Xcode意外退出"。点击“忽略”和“重新打开”都不能解决问题。。 出现该问题的原因是在Xcode中安装了插件,由于Xcode版本问题造成的冲突。有关于Xcode插件的使用,请移步《iOS开发——使用Alcatraz管理Xcod原创 2016-01-10 13:58:28 · 13441 阅读 · 3 评论 -
iOS开发——使用Alcatraz管理Xcode插件
Xcode是一款非常优秀的IDE,如果再加上一些插件的话,那就更是如虎添翼。今天我们就使用Alcatraz这个工具来管理Xcode插件,来提高我们的编程效率。类似使用cocoapods来管理iOS中大量的第三方库一样。今天我第一个为大家介绍的插件是:ColorSense。使用ColorSense可以方便的设置颜色。 首先来安装Alcatraz,步骤如下:(1)首先建议最好能翻墙原创 2015-12-10 17:30:07 · 6248 阅读 · 4 评论 -
iOS开发之设计一个新闻客户端模板(Swift)
这里我为大家设计一个通用方便的新闻客户端的浏览界面,也可以作为其他阅读类App的主界面,使用Swift来实现。该Demo我已经上传 https://github.com/chenyufeng1991/NewsClient 。 该UI界面可以实现3个选项卡之间的切换,可以通过左右的滚动来切换,也可以通过点击上方的tab来切换,在不同的选项卡下可以显示不同的新闻列表。下方会显示按原创 2015-11-10 19:27:32 · 3708 阅读 · 2 评论 -
开源高仿印象笔记的iOS应用——朝夕笔记(Oncenote)
iOS-Oncenote 这是一款类似于印象笔记Evernote的生活类iOS应用——朝夕笔记 Oncenote。我希望能为更多的iOS开发者提供帮助与服务。当然App中还有不少bug和可扩展的功能模块,也希望各位开发者为该项目贡献自己的code力量。项目地址:https://github.com/chenyufeng1991/iOS-Oncenote。大家可以通过点击右上角的fork到自己的G原创 2015-11-23 11:48:57 · 12588 阅读 · 24 评论 -
Xcode真机调试失败:The identity used to sign the executable is no longer valid
在Xcode中突然好久没有使用真机调试了,今天使用真机的时候,出现如下的警告,并真机运行失败:The identity used to sign the executable is no longer valid.Please verify that your device's clock is proprtly set,and that your signing certificate is n原创 2016-03-16 22:56:44 · 4614 阅读 · 0 评论 -
iOS开发——Block引起循环引用的解决方案
内存问题始终是软件开发中的头等大事,iOS开发中也不例外,在面试中也是必问的问题。今天我们主要来讲讲Block中涉及的循环引用问题。当我们自己一开始写代码的时候,可能会大量在block中使用self,但是当看到别人优秀的代码的时候,发现别人常常不是用self,而使用weakSelf. 为什么呢?本文的示例代码上传至 https://github.com/chenyufeng1991/Block_W原创 2016-03-18 01:04:39 · 9882 阅读 · 0 评论 -
iOS开发——使用Navigation和TabBar构造App框架与界面栈的重构
对于iOS开发来说,Navigation和TabBar是最常用到的界面元素。我在前面几篇博客中《iOS开发——代码生成TabBar与视图切换详解》《iOS纯代码实现界面建立、跳转、导航栏(无storyboard、无nib)》《iOS开发——界面跳转与返回及视图类型详解》中较为详细的实现了导航栏和TabBar的实现,以及一些界面跳转的实现。但是,在实际开发中,越来越发现Navigation和TabB原创 2016-04-29 12:46:08 · 7058 阅读 · 2 评论 -
iOS纯代码实现界面建立、跳转、导航栏(无storyboard、无nib)(Objective-C)
如今的iOS开发,已经比以前有了很大的简便,尤其是界面设计方面。主要是因为使用了nib文件和storyboard。但是作为程序员,我们需要挑战一下自己,如果没有nib文件和storyboard,我们怎么来构建一个应用。(1)新建一个iOS项目,直接删除Main.storyboard文件,然后在下面选项中删除Main....(2)在AppDelegate.m中实现如下:#im原创 2015-10-30 09:10:38 · 8172 阅读 · 0 评论 -
iOS开发效率篇——Xcode优秀插件使用(持续更新中)
我在上一篇博客《iOS开发——使用Alcatraz管理Xcode插件》中介绍了如何安装Alcatraz来管理Xcode中的插件,并主要讲解了一个ColorSense插件来进行颜色的设置,的确是能方便我们的编程。荀子说:君子性非异也,善假于物也。我们不仅要善于编码,还要善于利用工具。废话不说,我把比较不错插件在这里做个介绍。【StringSense】 当我们经常在代码中输入大段字符串原创 2015-12-11 01:27:16 · 7544 阅读 · 7 评论 -
iOS多线程开发——NSOperation/NSOperationQueue浅析
多线程是我们程序开发中不得不面对的问题。iOS开发中主要有三种多线程实现机制:NSThread,NSOperationQueue,GCD,抽象层次分别增高,抽象层越高,使用就越方面。我在前面的5篇博客中《GCD实践——串行队列/并发队列与iOS多线程详解》等讲解了如何使用GCD,今天我们来学习一下NSOperationQueue的使用。 在OS X10.6 和iOS 4之前,NSOp原创 2015-12-13 14:15:11 · 3706 阅读 · 1 评论 -
iOS开发——响应链(Responder Chain)的深入理解和代码示例
我在之前一篇博客《iOS响应者链Responder Chain浅析》中对iOS开发中遇到的响应者链概念有了基本的了解。但是仅仅停留在理解概念的基础上还是远远不够的。该博客我们会通过代码案例来深入理解响应链。该博客的示例上传至 https://github.com/chenyufeng1991/ResponderChain 。(1)首先来说说第一响应者(First Responder)。响应事件的原创 2016-05-15 01:27:29 · 9957 阅读 · 1 评论 -
iOS应用发布流程详解
这篇博客将会以一个完整的过程来实现一个iOS App提交审核的过程。在这个过程中,我们会涉及到证书、代码签名、授权文件、真机调试、开发者账号等一些概念,我也会有所解释。推荐大家先去看《iOS应用分发与内测(一)》《iOS应用分发与内测(二)》《iOS开发Provionsioning Profile解析》这几篇博客,看完以后会对发布App的流程非常熟悉。我先对一些概念做一个讲解:【证书 Certif原创 2016-05-28 17:05:15 · 12564 阅读 · 0 评论 -
iOS pch文件详解
在Xcode6之后,包括现在的Xcode7,都不会自动产生.pch文件了。貌似已经不推荐使用了。但是在看别人很多项目的时候,还是有包括这个文件,今天我们来谈谈.pch是什么吧。 ***_Prefix.pch就是该项目的预编译头文件。.pch表示PreComplied Header,是一个工程要用到的来自于外部框架的头文件列表。Xcode将会首先会编译.pch中这些头文件,以减少在Bu原创 2015-10-24 10:52:03 · 2524 阅读 · 0 评论 -
iOS开发中的UDID和UUID详解
今天突然想和大家聊聊UDID和UUID的问题,虽然平时我们对这两个东西很忽视,往往也很难区分这两个东西。今天就来好好谈谈。【UDID】 UDID的全名为 Unique Device Identifier :设备唯一标识符。从名称上也可以看出,UDID这个东西是和设备有关的,而且是只和设备有关的,有点类似于MAC地址。我在上一篇博客中《iOS应用发布流程详解》提到了真机调试,然后需要把U原创 2016-05-29 15:28:39 · 32283 阅读 · 6 评论 -
Autolayout第三方库Masonry的入门与实践
在如今的iOS开发中,Autolayout已经是不得不使用了,而且是我们主动的去拥抱Autolayout。使用Autolayout最普遍的方式就是在xib或者storyboard中可视化的添加各种约束,这也是Autolayout入门需要掌握的,关于这部分内容,可以参考《iOS开发——Autolayout的实践与技巧》这篇博客。对于比较简单的App开发,可能使用可视化Autolayout也就足够了。原创 2016-05-18 00:51:19 · 8503 阅读 · 1 评论 -
iOS开发——Autolayout的实践与技巧
已经好久没有更新博客了,由于最近工作真的非常繁忙,所以就疏于分享了。今天我们来深入交流一下Autolayout的开发与使用。我在 http://blog.csdn.net/CHENYUFENG1991/article/details/47165751, http://blog.csdn.net/CHENYUFENG1991/article/details/47062527,两篇博客中对Autol原创 2016-04-24 00:13:19 · 7372 阅读 · 1 评论 -
Xcode中快捷键汇总(持续更新中)
在IDE的使用过程中,快捷键的时候无疑会大大提高我们的开发效率,我在之前的一篇博客中介绍了我在使用Eclipse中使用到的快捷键,但是来到Xcode中,一切又不一样了,我们又要学习新的快捷键,一开始会不适应,慢慢就会熟悉的。(1)esc: 代码提示。Xcode中的代码提示功能是比较强大的,在代码书写过程中就会自动提示,但是在删除几个字母或者重新修改后,代码可能就不提示了,此时就可以使用左上角原创 2015-07-25 10:24:45 · 5321 阅读 · 1 评论 -
iOS开发调试技巧总结(持续更新中)
对于软件开发而言,调试是必须学会的技能,重要性不言而喻。对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中。不同语言、不同IDE、不同平台的调试,有同性也有个性。今天我们就来学习一下iOS开发中的调试技巧,语言暂用为OC,IDE当然是强大的Xcode。首先说明下,Xcode已经为我们调试项目提供了极大的方便。【1.普通断点】断点(Brea原创 2016-01-08 09:56:25 · 10438 阅读 · 8 评论 -
iOS开发编码建议与规范(持续更新中)
在开发过程中,我们不仅要去看别人的代码,也要让别人看我们的代码。那么,有一个良好的编码习惯将会非常重要。下面将会罗列使用Objective-C来开发iOS的编码建议。【1】任意函数长度不得超过50行。(其实很容易就超过50行,这就要考虑代码抽取了。)【2】任意行代码不能超过80字符。(其实也很容易超过80字符,可以考虑多行显示,比如有多个参数时,可以每个参数放一行。)可以在原创 2015-12-11 17:13:21 · 7430 阅读 · 0 评论 -
GCD实践——GCD定时器
在实际开发中,我们可能常常使用NSTimer作为我们的定时器,但是有了GCD之后,使用定时器就变得更加简单了。下面我们来简单实现一下。(1)在项目中,导入GCD的源代码。然后在ViewController中实现如下:#import "ViewController.h"#import "GCD.h"@interface ViewController ()@property(stro原创 2015-10-22 21:07:55 · 2614 阅读 · 0 评论 -
GCD实践——GCD线程组
在我们实际的开发中,我们往往有这样的需求,就是需要先执行完线程1,再执行线程2,当前面两个线程执行完毕之后,才能去执行线程3.这个逻辑如果使用线程组来实现就会显得非常方便。现在我将会来实现这个案例。代码我会放在github ,的GCD03中。(1)同样也需要导入GCD源码。然后在ViewController中实现如下:#import "ViewController.h"#impo原创 2015-10-22 16:41:41 · 2578 阅读 · 0 评论 -
GCD实践——GCD延时执行
这里我将为大家用两种方式来实现延时操作,分别是NSThread和GCD方式。并比较他们的优劣。我把代码放到了Github上面 ,中的GCD02.【使用NSThread实现延迟】(1)拖入GCD源码。代码如下:#import "ViewController.h"#import "GCD.h"@interface ViewController ()@end@im原创 2015-10-22 16:12:11 · 2944 阅读 · 0 评论 -
GCD实践——信号量
信号量是我们用来同步的一个利器。我们在实际开发中,我们往往在异步进程中需要先执行完一个进程操作,然后再执行另一个进程。这个时候就需要使用信号量来同步,我来为大家实现一下:(1)首先把GCD源代码导入到项目中,ViewController中代码如下:#import "ViewController.h"#import "GCD.h"@interface ViewController ()原创 2015-10-22 21:51:38 · 2043 阅读 · 0 评论 -
GCD实践——串行队列/并发队列与iOS多线程详解
1.串行队列一次只执行一个线程,按照添加到队列的顺序依次执行;2.并发队列一次可以执行多个线程,线程的执行没有先后顺序;3.UI界面所在的线程队列是串行队列。下面我对上述几个案例进行代码示例:项目已经上传至github: 。中的GCD01项目。【串行队列示例】(1)首先导入GCD源码,可以从我的项目中直接复制,总共9个文件:。原创 2015-10-22 15:12:14 · 6549 阅读 · 0 评论 -
GCD实践——多线程图片下载与信号量开发实践
在实际的项目开发中,我们往往需要从网络加载图片资源,为了不影响主线程,我们需要开辟新的线程。同时为了控制不同线程之间的前后顺序,需要引入信号量机制。这里我们来实现一个案例:从网络加载3张图片,当加载完第一张后在加载第二张,然后再加载第三张。实现如下:(1)首先也需要引入GCD的源代码,然后在ViewController代码中实现如下:#import "ViewController.h"#原创 2015-10-23 08:46:42 · 1859 阅读 · 0 评论 -
iOS多线程开发——GCD的使用与多线程开发浅析
我在前面的博客中《GCD实践——串行队列/并发队列与IOS多线程详解》中对iOS中的同步异步、串行并行做了较为详细的讲解。在之后的几篇GCD实践的博客中对GCD的使用也有较为详细的实现。但是我们要注意的是,那里用到的GCD是别人对苹果的原生GCD接口封装后的使用,虽然用起来更为方便,但是为了有全面的学习,我还是推荐去用苹果原生的GCD。该案例代码上传至 https://github.com/che原创 2016-04-29 18:22:17 · 15244 阅读 · 0 评论 -
iOS多线程开发——NSThread浅析
在IOS开发中,多线程的实现方式主要有三种,NSThread、NSOperation和GCD,我前面博客中对NSOperation和GCD有了较为详细的实现,可以参考《iOS多线程开发——NSOperation/NSOperationQueue浅析》《iOS多线程开发——GCD的使用与多线程开发浅析》。以及对于多线程中的同步异步,并行串行等概念,我在《GCD实践——串行队列/并发队列与iOS多线程原创 2016-05-09 01:08:42 · 7676 阅读 · 1 评论 -
NSMutableDictionary中的小坑与初始化方法详解
今天来讲NSMutableDictionary这个基础,是因为在今天的开发中遇到了一个小小的坑,当发现了这个问题后,着实觉得很不应该,所以在这里做一个记录,也同时同他人分享,少走我的弯路。本案例代码上传至 https://github.com/chenyufeng1991/InitNSMutableDictionary 。 今天遇到的问题是这样的,某个方法返回两种结果,NSMutabl原创 2016-05-09 23:13:54 · 12485 阅读 · 0 评论 -
响应式编程框架ReactiveCocoa介绍与入门
ReactiveCocoa是Github团队开发的第三方函数式响应式编程框架,在目前市面上的很多iOS App都大量使用了这个框架。以下我简称这个框架为RAC.我下面会通过几篇博客来和大家一起学习这个强大的框架。该博客的案例代码已经上传至 https://github.com/chenyufeng1991/ReactiveCocoaDemo 。当然最好的学习方式是去阅读RAC的源码,Github原创 2016-05-22 01:07:27 · 11561 阅读 · 2 评论 -
响应式编程框架ReactiveCocoa学习——基本操作符
我在上一篇博客中《响应式编程框架ReactiveCocoa介绍与入门》简单介绍了ReactiveCocoa的介绍和简单使用,主要是翻译了官方文档中的README部分,其实个人认为技术最好的学习方式就是去看官方文档。今天我仍旧来翻译官方文档中的BasicOperators部分,也就是基本操作符。我写的一部分代码示例上传至 https://github.com/chenyufeng1991/React原创 2016-05-22 13:37:55 · 7602 阅读 · 0 评论 -
响应式编程框架ReactiveCocoa学习——框架概览
这篇博客将会继续翻译RAC的官方文档Framework Overview. 主要是对RAC这和框架进行概览的介绍和学习。同时也可以参考我前面的两篇翻译《响应式编程框架ReactiveCocoa学习——基本操作符》《响应式编程框架ReactiveCocoa介绍与入门》。其中ReactiveCocoa的Github官方地址为 https://github.com/ReactiveCocoa/React原创 2016-05-22 23:14:35 · 8852 阅读 · 0 评论 -
iOS开发实战——CollectionView点击事件与键盘隐藏结合案例
在我们的实际开发中,CollectionView是一种非常实用而又稍难的控件,如果想要在复杂的场景下使用,则需要考虑的比较全面。如果又在CollectionView添加其他的控件,比如在cell里面再添加一个按钮,那么点击触发的事件前后顺序就非常重要了。再者,如果一个界面中包含了一个输入控件,需要弹出键盘时,键盘遮挡对于界面上的其他控件的使用就会造成较大的影响。今天我的案例具体需求描述下:界面中有原创 2016-06-05 13:06:16 · 7144 阅读 · 2 评论 -
iOS开发——frame和bounds详解
在iOS的UI开发中,frame和bounds是两个非常容易搞混的概念,而很多开发者在实际项目中也很少去区分,因此会导致出现一些意想不到的问题。本篇博客以实际代码的方式来学习frame和bounds的使用。相关示例代码上传至 https://github.com/chenyufeng1991/FrameAndBounds ,欢迎大家下载查看。(1)先来查看一个界面中的容器self.view的fra原创 2016-06-26 23:00:56 · 8048 阅读 · 1 评论