iOS开发
文章平均质量分 76
程家明
人就是太在乎自己的感觉与感受,才会身处于水深火热之中。
展开
-
将UITableView的内容截取到UIImage上
/** * 截取tableView的所有内容生成图片 * * @return 生成的image */- (UIImage*)getCapture{ UIImage* viewImage = nil; UITableView *scrollView = self.tableView; CGSize原创 2015-04-08 18:46:37 · 601 阅读 · 0 评论 -
iOS正则匹配
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:原创 2015-04-11 16:10:50 · 664 阅读 · 0 评论 -
iOS通知与消息机制
概述在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同。今天就和大家一块去看一下如何转载 2015-03-18 17:23:07 · 629 阅读 · 0 评论 -
iOS性能优化
25条提高iOS App性能的建议和技巧当我们开发iOS应用时,好的性能对我们的App来说是很重要的。你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢就会让你得到不好的评论。 然而,由于IOS设备的限制有时很难工作得很正确。我们开发时有很多需要我们记住这些容易忘记的决定对性能的影响。 这是为什么我写这篇文章的原因。这篇文章用备忘录的形式集合了25个技原创 2015-03-06 09:44:29 · 429 阅读 · 0 评论 -
SDWebImage内部实现过程
入口 setImageWithURL:placeholderImage:options: 会先把 placeholderImage 显示,然后 SDWebImageManager 根据 URL 开始处理图片。进入 SDWebImageManager-downloadWithURL:delegate:options:userInfo:,交给 SDImageCache 从缓存查找图片是否已原创 2015-03-04 10:57:17 · 356 阅读 · 0 评论 -
从一个应用程序挑到另一个应用程序
背景:假如有A,B两个程序(当然都得是你自己写的),想在A程序中判断B程序是否存在本机上,存在就启动他,启动的时候弹出一个对话框,对话框的内容是A程序带过去的。背景到此结束,下面是实现流程。实现:1.在B程序中打开info.plist这个文件新建一个key=URL types,然后在这个下面新建一个URL Schemes,然后下面的item0后面的值为“myapp”,这里的myap原创 2015-01-03 21:16:10 · 425 阅读 · 0 评论 -
为iOS项目添加Daily Build
很多人在说到Daily Build的时候总是喜欢背书。背书就背书吧,总比混迹软件行业连书都没看过的强。很久以前遇到一个奇葩。每次到代码提交测的通知就着急忙慌的催促组员赶紧干活,开始严重加班,晚饭都不吃。。。偶尔还需要开通宵。但是即使如此,最后也不会得到什么好的反馈。那个team就是这样循环往复的做着项目,直到永恒。如果项目的相关人员能背背敏捷什么的开发书籍,想必情况总能有所改善。相信以上情转载 2015-02-06 16:50:07 · 473 阅读 · 0 评论 -
nil,Nil,NULL,NSNULL之间的区别
ObjC 里面的几个空值符号经常会差点把我搞死,这些基础的东西一点要弄清楚才行,以提高码农的基本素质。nilnil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象。例如:?NSString *someString = nil;NSURL *someURL转载 2015-04-16 10:59:19 · 409 阅读 · 0 评论 -
iOS应用架构谈 开篇
iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 动态部署方案 iOS应用架构谈 本地持久化方案缘由之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你会从哪些方面来说呢?转载 2015-04-15 21:46:05 · 324 阅读 · 0 评论 -
获取iOS设备名
1234567891011121314151617181920212223242526272829303132333435原创 2014-09-07 11:34:17 · 543 阅读 · 0 评论 -
UIApplication深入研究
很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的api来实现一些功能,但是不可否认,这个类是iOS编程中很重要的一个概念,所以我这里写这个文章来总结以下这个类的信息,如果写的不对的地方,请留言,多谢。UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。每一个程序在运行期必须有且仅有一个UIApplication(或则其子类)的一个实原创 2015-07-07 09:30:07 · 371 阅读 · 0 评论 -
iOS应用架构谈 view层的组织和调用方案
《iOS应用架构谈 开篇》出来之后,很多人来催我赶紧出第二篇。这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分。现在好啦,第二篇出来了。当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了,然后此时需要做非常彻底的重构。一般也就是这两种时机会去做View层架构,基于这个时机的转载 2015-05-25 17:57:49 · 752 阅读 · 0 评论 -
UITableView优化技巧
最近在微博上看到一个很好的开源项目VVeboTableViewDemo,是关于如何优化UITableView的。加上正好最近也在优化项目中的类似朋友圈功能这块,思考了很多关于UITableView的优化技巧,相信这块是难点也是痛点,所以决定详细的整理下我对优化UITableView的理解。UITableView作为iOS开发中最重要的控件之一,其中的实现原理很是考究。Apple在这块的转载 2015-06-07 22:56:01 · 314 阅读 · 0 评论 -
优化UITableViewCell高度计算的那些事
我是前言这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITableView 滑动优化的一个总结。我们也在维护一个开源的扩展,UITableView+FDTemplateLayoutCell,让高度计算这个事情变的前所未有的简单,也受到了很多星星的支持,github链接请戳我这篇总结你可以读到:UITabl转载 2015-06-07 22:48:19 · 291 阅读 · 0 评论 -
Certificates, Indentifiers & Profiles
刚接触iOS开发的人难免会对苹果的各种证书、配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解。这篇文章就对Certificate、Provisioning Profile等做个总结。 1.概念介绍如果你拥有一个开发者账户的话,在iOS Dev Center打开Certificates, Indentifiers & Profiles转载 2015-06-26 23:47:28 · 592 阅读 · 0 评论 -
iOS应用架构谈 网络层设计方案
iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 动态部署方案 iOS应用架构谈 本地持久化方案前言网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用。其它的AS转载 2015-06-04 20:26:06 · 417 阅读 · 0 评论 -
关于iOS Push总结
简单总结一下推送消息的相应情况1. 当程序处于关闭状态收到推送消息时,点击图标会调用- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 这个方法,那么消息给通过launchOptions这个参数获取到。2. 当程序处原创 2015-06-25 11:16:32 · 372 阅读 · 0 评论 -
Objective-C编码规范
Objective-C编码规范这篇编码风格指南概括了raywenderlich.com的编码规范,可能有些删减或修改。介绍我们制定Objective-C编码规范的原因是我们能够在我们的书,教程和初学者工具包的代码保持优雅和一致。即使我们有很多不同的作者来完成不同的书籍。这里编码规范有可能与你看到的其他Objective-C编码规范不同,因为它主要是为了打印和web的原创 2015-06-02 14:43:56 · 415 阅读 · 0 评论 -
layoutSubviews在什么时候调用
layoutSubviews在以下情况下会被调用: 1、init初始化不会触发layoutSubviews。2、addSubview会触发layoutSubviews。3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。4、滚动一个UIScrollView会触发layoutSubviews。5、旋转Screen原创 2015-05-10 11:39:15 · 585 阅读 · 0 评论 -
NSLog效率低下的原因
转自sunnyxx的技术博客 前言打Log是我们debug时最简单朴素的方法,NSLog对于objc开发就像printf对于c一样重要。但在使用NSLog打印大量Log,尤其是在游戏开发时(如每一帧都打印数据),NSLog会明显的拖慢程序的运行速度(游戏帧速严重下滑)。本文探究了一下NSLog如此之慢的原因,并尝试使用lldb断点调试器替代NSLog进行debug log。转载 2015-04-30 09:13:47 · 500 阅读 · 0 评论 -
增强iOS应用程序的25个技巧
在开发iOS应用程序时,让程序具有良好的性能是非常关键的。这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评。然而由于iOS设备的局限性,有时候要想获得良好的性能,是很困难的。在开发过程中,有许多事项需要记住,并且关于性能影响很容易就忘记。 本文收集了25个关于可以提升程序性能的提示和技巧,把性能优化技巧分为3个不同的等级:初级、中级和高级。 初级原创 2014-10-04 22:49:52 · 369 阅读 · 0 评论 -
iOS应用遭拒的十大原因
北京时间9月2日上午消息,苹果公司刚刚发布了iOS应用遭拒的十大原因,帮助开发者更好地设计符合苹果要求的应用。 在苹果列出的十大原因中,占比最高的是“信息提交不全”北京时间9月2日上午消息,苹果公司刚刚发布了iOS应用遭拒的十大原因,帮助开发者更好地设计符合苹果要求的应用。在苹果列出的十大原因中,占比最高的是“信息提交不全”,达到14%。属于这一原因的有转载 2014-11-17 17:06:43 · 1049 阅读 · 0 评论 -
NSRunloop
对于多线程开发而言,有两种处理方案,一种是不需要太多的交互,直接运算比较大的数据内容就可以,另一种方法是将执行函数加入到消息循环当中去,等待事件的发生,然后执行。有了NSRunloop,会使线程的表现变得更加的好,他的存在一个重要目的是当有事件发生时,唤醒线程,当没有事件时,线程将处于休眠状态,这样的多线程运行,用户表现会非常的好。因为,线程其实也是有开销的。对于NSRun原创 2014-11-17 15:23:35 · 341 阅读 · 0 评论 -
iOS调用系统声音
导入框架:代码:[cpp] view plaincopy#import #import @interface MsgPlaySound : NSObject { SystemSoundID sound;//系统声音的id 取值范围为:1000-2000 } - (id)initSystemShake;//系统 震动 -原创 2014-10-05 23:00:16 · 793 阅读 · 0 评论 -
iOS 学习资料整理
这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的目前所处的位置.该文档会持续更新, 同时也欢迎更多具有丰富经验的 iOS 开发者将自己的常用的一些工具, 学习资料, 学习心得等分享上来, 我将定期筛选合并, 文档尚有一些不完善之处, 也转载 2015-01-12 16:23:39 · 1283 阅读 · 0 评论 -
cocoaPods的安装与使用
CocoaPods是什么?当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新原创 2014-12-17 16:25:58 · 376 阅读 · 0 评论