iOS开发进阶
文章平均质量分 80
主要分享一些iOS开发中一些中上级别的技术、外国译文、项目实战。
欣麒骥
软件工程师
展开
-
Block用法解析
Block代码块是对C做出的一个补充,初次体验代码块,无比的不适应。古怪的语法确实让人不易入门甚至精通。但若能够深入精通Block的使用,会给代码带来层次上的提升。Block就是一段在将来被执行的代码定义块语法 ^[块返回值类型](形参类型1 形参1,形参类型2 形参2,...) { //块执行任务 }需要注意的是定义块必须以^开头定义块变量块返回值类型 (^块原创 2016-05-01 17:15:58 · 11205 阅读 · 0 评论 -
浅谈iOS单元测试
什么是单元测试?单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。 iOS中单元测试有什么意义?大型项目开发,功能比较繁琐,代码量比较大,调试某一块功能需要不断的原创 2016-04-30 16:05:37 · 14141 阅读 · 2 评论 -
iOS SQLite3数据库操作
iOS中数据持久化分为四种:属性列表、对象归档、SQLite3和Core Data,SQLite3数据库操作是一个必不或缺的技术。SQLite3简介SQLite3数据库是移动端(iOS、Android、嵌入式)上认定的关系型数据库,与MySQL、Oracle等数据库相比,具有轻量级的优势,这就造成了体积小、迅速、简单功能依旧强大等优势。SQLite3语句特点不区分大小写每一句以;结尾 SQL原创 2016-04-28 16:59:05 · 8648 阅读 · 0 评论 -
iOS动画解析
iOS引入动画效果可以使我们的软件得到更好的用户体验,因此动画的深入研究无疑对于开发者一个很好的加分项。常见的iOS对动画的操作分为两类:CALayer层的操作UIView的操作 二者有何区别UIView里面包含有一个CALayer层UIView之所以能够在屏幕上显示出来,完全因为其内部拥有一个CALayer层CALayer层的操作更底层更轻量级、性能更高。UIView动画执行完毕之原创 2016-04-25 21:40:43 · 12044 阅读 · 0 评论 -
iOS设计模式之原型模式
What is the 原型模式?原型设计模式是通过一个原型拷贝的方式快速创建一个新的对象。拷贝分为两种:浅拷贝(同一个地址,不同的指针)深拷贝(不同的地址,完全的独立)二者区别在于是否生成新的一个地址 When using the 原型模型?需要创建的对象应独立于其类型与创建方式。要实例化的类是在运行时决定的。不想要与产品层次相对应的工厂层次。不同类的实例间的差异仅仅是状态的若干组合原创 2016-04-24 20:27:51 · 2524 阅读 · 0 评论 -
iOS开发--Mac下服务器搭建
前言 对于Mac电脑的认识,我一直停留在装B神器的意识上,就在前两天我彻底改变了庸俗的看法,当时忙着写毕业设计,苦于iOS开发没有服务器, 数据都是从网上抓取或本地plist文件,感觉不够高大上,毕业设计怎能平庸,于是乎准备倒腾下服务器开发,以满足我的毕(装)业(B)心愿。准备阶段1. Mac电脑一台2. 简单的php或 tsp或者C#(会些皮毛能简单写点即可)3. Unix/Linux原创 2016-04-17 17:48:59 · 7937 阅读 · 0 评论 -
iOS通知中心
iOS开发中的传送消息机制总的来说细分为三大类:本地通知推送通知通知中心三者之间并没有什么直接性质的联系,通知中心是向应用程序中注册某个观察者的所有对象广播消息,通过通知中心可以很好的协调不同对象之间的消息通信。注意:每一个应用程序都有且只有一个通知中心(NSNotificationCenter)实例 代理和通知中心都是协调各个对象之间进行消息通信,通知中心在功能上与代理有些类似,二者在选择原创 2016-04-15 14:42:03 · 9744 阅读 · 0 评论 -
iOS内存管理机制解析之MRC手动引用计数机制
前言: iOS的内存管理机制ARC和MRC是程序员参加面试基本必问的问题,也是考察一个iOS基本功是 否扎实的关键,这样深入理解内存管理机制的重要性就不言而喻了。iOS内存管理机制发展史iOS 5以前 :MRC(手动引用计数)iOS 5及以后:ARC (自动引入计数)MRC机制时代“谁开辟申请,谁及时合理释放” 面对自己申请的内存空间是要及时进行回收的:不及时释放会造成什么结果?对原创 2016-04-10 18:13:39 · 4900 阅读 · 0 评论 -
浅谈iOS模糊效果
前言 今年过年微信客户端临时出现了一个非常有意思的功能,好友发出带了一层蒙层的照片,发指定金额的红包即可看到清晰相片,今天我们就解开这个神秘的技术面纱。实现技术汇总官方:CoreImage(很早就出现的技术,缺点是转化效率低)UIBlurEffect(iOS8以后出现的新技术,效率比上面的要好,并且简单)VImage 苹果提供了一个庞大的库,进行更复杂的模糊的效果实现非官方:GPUI原创 2016-04-07 21:14:34 · 4355 阅读 · 0 评论 -
iOS多线程开发系列之(二)NSOperation
上一篇我们简单的对iOS多线程开发系列(一)三种多线程办法进行对比性能和操作的复杂度,并认真介绍了NSThread的使用。 我们借助上一次的例子完全可以采取NSOperation方法进行实现NSOperation不具备封装操作的能力,必须使用它的子类:NSInvocationOperationNSBlockOperation 更简洁的Block实现方法,功能上与 NSInvocationOpe原创 2016-03-29 21:04:16 · 1077 阅读 · 0 评论 -
iOS多线程开发系列之(一)NSThread
什么是多线程?一个进程的开始阶段系统会分配一个主线程进行正常的工作,工作过程中是依次执行的,只有这个任务执行完毕的时候才能执行下一个任务,两个或多个任务不能同时执行。这样的工作效率是低效的,因此就引入了多线程,能够利用iPhone设备多核的优势同时并发的处理多个事件。三种多线程技术:1.NSThread 2.NSOperation、NSOperationQueue 3.GCD分析三种技术这三种技原创 2016-03-29 18:07:01 · 1209 阅读 · 0 评论 -
对关于iOS图片压缩的一点积累
在移动端对用户的图片进行压缩处理是在所难免,有时候我们需要对图形的尺寸进行改变而有时候需要进行体积的减小,方便上传和节约用户流量。因此压和缩是不同的两个概念“压”:指文件体积进行变小,但像素数不变,长和宽不变,质量减少,文件体积也就会减少。“缩”:指图片的尺寸变小,造成像素点数减少,这样文件体积同样会减少。先谈谈“压”吧在iOS开发中读取图片常用的就是两个函数方法:UIImagePNGRepre原创 2016-03-28 21:29:53 · 1066 阅读 · 0 评论 -
iOS自适应布局之Masonry(一)
前言iPhone 5之前我们对应用布局停留在3.5寸一个屏幕的阶段,当时的安卓屌丝们是多么的羡慕iOS开发,不会被大量的屏幕适配所烦恼。随着iPhone产品的迭代,逐渐出现4寸、4.7寸、5.5寸….,你们说,iphone10+会有多少寸?O(∩_∩)O~简介正因为上面说的那样,屏幕的尺寸逐步增多,还沿用以前的方法布局显然是不行的,这时候为布局引进新的结局办法NSAutoLayout,但苹果提供的比原创 2016-03-25 18:02:02 · 2308 阅读 · 1 评论 -
iOS调试奇巧淫技(二)之LLDB
一篇我们介绍了iOS调试奇巧淫技(一),主要是几种断点的功能和运行时间测试,这次我们进一步学习一个让你用了之后爱不释手的测试工具—-LLDB简单介绍LLDB是一个开源的内置于XCode的调试工具,可以安装C++或者Python插件。与LLDB相对应的是gdb,主要存在于基于UNIX平台的程序调试工具。使用作用在开发中我们经常要调试代码,用到最多的就是print和NSLog输出,这样的做法在某些程度原创 2016-03-24 21:26:24 · 1920 阅读 · 1 评论 -
iOS调试奇巧淫技(一)
你以为,你以为的就是你以为的吗?你以为你代码写的很OK啦?你以为你的是大牛啦?你以为的就是你以为的吗?你的代码经得起考验吗?(PS:爱经得起考验吗)iOS调试的技巧很多,通过调试我们不仅可以迅速找到Bug的所在,更能优化代码,让你的你以为不再是你以为!一、断点普通断点当运行时遇到断点会停止下来供程序员调试我们清晰的看到此时的i依旧等于0,该函数在一个名为ViewController中上图中有原创 2016-03-23 20:56:53 · 2214 阅读 · 1 评论 -
iOSUIWebView---快停下啦,你的愚蠢的行为
公元前 之前还是学生时代的时候给社团们学弟学妹们介绍iOS编程的时候,简单的准备了图灵ios培训第一周(使用UIWebView创建简易浏览器),NSURL *url =[NSURL URLWithString:urlString];NSLog(urlString);NSURLRequest *request =[NSURLRequest requestWithURL:url];[webView l原创 2016-03-22 19:53:51 · 2984 阅读 · 8 评论 -
iOS单例模式
下午帮同事改了一下午的代码,深深的被刺伤了,也深深的觉得代码架构的重要性,更深深的觉得应该好好的打磨一下设计模式。于是乎就钻研一下设计模式由易到难,先从iOS最简单的单例模式说起。作为iOS最简单的设计模式—单例模式,主要的作用是:保证了一个类在项目中只有唯一的实例。节约了资源,减少不必要的开支。怎样创建一个单例?定义一个全局变量:static Singleton * _instance =原创 2016-03-04 18:37:35 · 1735 阅读 · 2 评论 -
iOS开发PCH文件、NSLog真机不打印
添加PCH文件现在Xcode6、7创建一个新的工程时将默认不会再带有PCH文件,需要手动添加PCH文件。在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File 然后点击下一步进行命名,建议命名格式为项目名称-Prefix,如图Demo 创建的PCH文件与编译器Xcode进行连接:找到 Project > Build Se原创 2016-02-03 22:28:46 · 2963 阅读 · 2 评论 -
iOS工具篇--CocoaPods
iOS开发过程中有好多第三方框架,十分便捷与开发者用最少的代码完成最优秀的App,一个上线的项目差不多得用到很多的框架,如果我们一个一个进行添加,则显得特别的慢,慢不是重点,重点是还容易出错,例如加载高德地图的框架特别复杂的环境适配,一步出错就会出现不知名的怪错误。所以一个shell命令编辑器就呼之欲出—CocoaPods搭建ruby环境注意:2015年Apple公司推出了iOS9,用https更原创 2016-02-02 15:57:24 · 1928 阅读 · 0 评论 -
UITableView基础(一)
不积跬步无以至千里,ios成神的过程是漫长的,需要一点点的踏实积累,今天给大家讲解UITableView的基础知识,希望能帮助你!原创 2014-12-09 14:38:43 · 1003 阅读 · 0 评论 -
iOS 开发之全局特性设置
大家有没有发现???发现什么呢?What? 在平常用的App中,每一页的导航栏的颜色和字体都是一样的,有些是背景图片,有些是通过UIColor设置的颜色背景,本人在以前开发中,每次都在每个页面写一次导航栏的背景。唉~,不要笑话me(大神请绕道) 好啦,废话不多说,说重点,其实我们可以在AppDelegate中设置全局导航栏的颜色和字体颜色 ,这样的设置使我们一劳永逸!//设置导航栏文字颜色原创 2015-11-18 17:02:27 · 1268 阅读 · 0 评论 -
ios字体设置
我们在日常的项目开发中,经常需要为某些字体进行个性化的设置,改变字体的风格:所以就引入了UIFont来设置字体经常用到是UIFont的一个类函数:+fontWithName:(NSString *)fontName size:(CGFloat) fontSize 创建并且返回一个指定字体类型和大小的字体对象,fontName指定字体集的名字和风格(例如宋体,楷书等这一类型的),原创 2015-04-02 21:22:52 · 1236 阅读 · 0 评论 -
iOS MD5加密
哈哈!先上理论篇: MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如: MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461 这就是tanaji原创 2015-11-18 21:28:49 · 967 阅读 · 0 评论