iOS
文章平均质量分 71
唐韧_Ryan
前非著名程序员,现不知名产品人。微信公众号:唐韧
展开
-
iOS测试——置换测试: Mock, Stub 和其他
iOS单元测试,使用Mock和Stub,OCMock原创 2014-08-21 17:51:44 · 4175 阅读 · 0 评论 -
IOS学习笔记10—UIControl对象详解
上篇讲到了UITouch和UIEvent事件,简单回顾一下,UIEvent是一系列UITouch的集合,在IOS中负责响应触摸事件。另外还提到了响应者链的概念,在IOS中,所有事件有一个最先响应者,事件可以沿着响应者链向下传递。接下来是UIControl对象UIControl是UIView的子类,当然也是UIResponder的子类。UIControl是诸如UIButton、UIS原创 2012-07-17 11:22:06 · 15485 阅读 · 2 评论 -
IOS学习笔记11—IOS通知中心
IOS中还有一类产生事件的功能,那就是通知。通过通知,可以在一定的条件下触发响应的事件。类似于Android中的广播机制(Broadcase Receiver),接收到通知(广播)后,便可执行指定的方法。通过NSNotificationCenter获取通知对象,注册并使用通知。下面 以一个例子为例:UIApplication *application = [UIApplicat原创 2012-07-17 22:15:23 · 7827 阅读 · 1 评论 -
IOS学习笔记12—UITabBarController
UITabBarController是选项卡栏导航控制器,显示效果是在页面底部有多个选项卡,通过点击不同选项卡可以在不同的ViewController之间进行切换。这种对象的层次结构至少包含6个对象:一个UITabBarController;两个UIViewController;一个UITabBar;两个UITabBarItem;UITabBarContro原创 2012-07-18 11:27:41 · 8280 阅读 · 3 评论 -
IOS学习笔记13—UINavigationController
导航控制器UINavigationController控制一系列的UIViewController,他们组成一个层次结构,每一个ViewController都在这个层次结构中上下移动,组织方式是栈形式。每个UIViewController都有相关联的UINavigationItem,后者处于活动状态时将位于UINavigationBar中,每个UINavigationItem都可能包含一个或多原创 2012-07-18 20:37:36 · 4684 阅读 · 4 评论 -
IOS学习笔记14—用户首选项NSUserDefaults
用户首选项是用来保存和记录用户在操作应用的过程做做出的一些选择或设置。类似Android开发中的SharedPreference,可以存储一些数据,但基本都是简单类型的数据,主要作用都是存储一些用户设置数据,比如是否是首次登陆,就可以设置一个布尔类型的变量,设值为true或false。NSUserDefaults的几个重要方法:standardUserDefaults:创建共享默认原创 2012-07-20 20:19:30 · 7405 阅读 · 1 评论 -
IOS学习笔记15——SQLite数据库
SQLite是MySQL的简化版,更多的运用与移动设备或小型设备上。SQLite的优点是具有可移植性,它不需要服务器就能运行,同时,它也存在一些缺陷,首先,没有提供简单的数据库创建方式,必须手工创建数据库,其次,SQLite没有面向对象接口,必须使用依赖于C语言代码的API。相对于OC,这套API既不那么优雅,也更难使用。当相比于用文件进行存储,还是更推荐使用SQLite进行数据存储。原创 2012-07-24 19:42:19 · 8904 阅读 · 6 评论 -
IOS学习笔记16——Core Data
Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互。Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需任何SQL知识就能操作他们。Core Data位于MVC设计模式中的模型层,一般需要在设备上存储结构化数据时,考虑使用SQLite或是序列化等方法,而Core Data是这两种方法的混合体,并增加原创 2012-07-27 16:37:50 · 45918 阅读 · 8 评论 -
IOS学习笔记32—使用Storyboard实现复杂界面
Storyboard是IOS5以后新增的内容,从名字上看,是以故事面板的形式来展现界面间的逻辑关系,Storyboard的功能很强大,今天就简要介绍Storyboard的基本使用,界面间的关系,以及如何使用xib和Storyboard共同使用的情况。首先新建一个Empty工程,并新建一个Storyboard,我命名为MainStoryboard,以下是完整的工程目录结构:打开Mai原创 2012-08-29 11:04:52 · 29033 阅读 · 4 评论 -
IOS学习笔记17——Core Location
IOS支持三种检测当前位置的方式:手机基站、Wi-Fi、和GPS,其中GPS是经度最高的,同时也是最耗费手机电量的。一般情况下在室内是无法通过GPS获取位置信息的,通过Wi-Fi获取位置的原理是通过网络提供商的IP地址信息来获取位置,经度不是很高,最后是通过手机基站获取位置,手机开机后会连接附近的基站塔获取信号,通过基站可以得到手机所在的位置信息,基站越密集,所获取的位置信息经度就越高。原创 2012-07-29 10:44:52 · 9812 阅读 · 0 评论 -
IOS学习笔记20—UIActivityIndicatorView、UIProgressView
UIActivityIndicatorView和UIProgressView都继承自UIView,所以他们可以附属在其他视图上。UIActivityIndicatorView是一个进度提示器,显示一个小圆圈在转动,主要用在一些耗时操作的提示上,比如网络请求;UIProgressView是一个进度提示条,不过它可以显示一个进度,可以告知用户操作已经进行了多少,这二者的目的都是为了在应用程序有耗时操作原创 2012-08-01 12:28:57 · 12535 阅读 · 0 评论 -
IOS学习笔记21—沙盒机制(SandBox)
IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。1.每个应用程序都在自己的沙盒内2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容3.应用程序向外请求或接收数据都需要经过权限认证查看模拟器的沙盒文件夹在Mac电脑上的原创 2012-08-03 11:32:30 · 7274 阅读 · 2 评论 -
IOS学习笔记22—文件操作(NSFileManager)结合相册小例子
这个示例程序主要用到了IOS中的UIImageView、UIImagePickerViewController、UIImage、NSFileManager等知识,结合这些知识构成一个小的应用程序,主要功能是对相册图片进行读取、存储到指定文件夹、从指定文件夹读取出来。这方面的知识在正式项目中用的是比较多的。做Android开发中,经常会使用到将图片保存到SD卡和从SD卡读取图片的操作,相比于Andr原创 2012-08-04 21:52:27 · 15117 阅读 · 17 评论 -
IOS学习笔记34—EGOTableViewPullRefresh实现下拉刷新
移动应用开发中有这么一种场景,就是在列表中显示的数据刷新,有点击刷新按钮刷新的,也有现在最流行的由Twitter首先推出的下拉刷新功能,在IOS中,使用下拉刷新更新UITableView中的数据也用的非常多,最典型的就是新浪微博的客户端,使用下拉的形式来更新最新的微博信息。在Android开发中,有相应的开源项目来实现下拉刷新,这里主要讲如何在IOS中实现下拉刷新的功能,我们用到一个EGOTa原创 2012-09-04 10:51:27 · 27348 阅读 · 8 评论 -
iOS学习笔记45—本地通知UILocalNotification
在iOS中有两类信息提示推送方式,一类是远程服务器推送(APNS),之前有笔记中介绍过APNS:http://blog.csdn.net/tangren03/article/details/8482259,还有一类就是本地通知UILocalNotification,今天就简要的记录一下UILocalNotification的使用,代码里见注释UILocalNotification *not原创 2013-05-11 14:17:44 · 10205 阅读 · 3 评论 -
IOS学习笔记9—IOS触摸事件监听和操作
在IOS开发中会遇到各种操作事件,通过程序可以对这些事件做出响应。首先,当发生事件响应时,必须知道由谁来响应事件。在IOS中,由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次获得响应事件消息的机会。当发生事件时,事件首先被发送给第一响应者,第一响应者往往是事件发生的视图,也就是用户触摸屏幕的地方。事件将沿原创 2012-07-16 20:15:26 · 17830 阅读 · 3 评论 -
IOS学习笔记8—UITableViewController
UITableViewController是IOS开发中一个比较重要的试图控制器,是集成了UITableView视图的控制器,在实际开发中经常用到,功能非常强大,可定制性也很高,下面从简单的使用和自定义Cell以及事件响应等方面来使用。1.首先创建一个Single View Project,命名为UITableViewControllerTest。打开ViewControlle原创 2012-07-15 18:13:05 · 27397 阅读 · 11 评论 -
IOS学习笔记7—UIViewController
UIViewController继承了UIResponder,而UIResponder继承了NSObject,UIViewController是所有视图控制器的父类。在MVC模式中,UIViewController扮演C(controller)的角色,控制视图以及模型的操作。如果新建工程或新建ViewController时关联了.xib文件,则在viewDidLoad方法中原创 2012-07-14 21:04:59 · 6917 阅读 · 2 评论 -
我的iOS工程结构
好的架构不是设计出来的,而是进化而来的!原创 2014-08-04 08:32:12 · 5308 阅读 · 0 评论 -
Ryan's zone微信公众账号
非常感谢大家一直以来对本人博客的支持,是大家的鼓励让我有信心一直把记录写下去。目前为止,我们的QQ群内有来自各个公司工作一线的朋友,有来自在校学生或处于学习阶段的朋友,在群里,大家都可以学习到新知识、可以为他人答疑解惑,达到共同进步的目的。 为了能与大家分享知识,构建一个沟通的平台,我开通了Ryan‘s zone的微信公众账号Android及iOS开发汇总>,旨在为大家及时推送原创 2013-02-24 19:09:31 · 16013 阅读 · 22 评论 -
使用CocoaPods管理依赖库
本篇内容将介绍Mac和iOS开发中必备的一个依赖库管理工具CocoaPods原创 2014-01-05 20:24:39 · 3985 阅读 · 0 评论 -
iOS事件传递机制(二)
文章地址:http://ryantang.me/blog/2013/12/29/ios-event-dispatch-2/原创 2013-12-31 22:21:49 · 2794 阅读 · 0 评论 -
iOS事件传递机制(一)
本篇内容将围绕iOS中事件及其传递机制进行学习和分析。在iOS中,事件分为三类:触控事件(单点、多点触控以及各种手势操作)传感器事件(重力、加速度传感器等)远程控制事件(远程遥控iOS设备多媒体播放等)原创 2013-12-10 05:57:25 · 5696 阅读 · 1 评论 -
苹果开发者账号那些事儿(二)
文章地址:http://ryantang.me/blog/2013/09/03/apple-account-2/原创 2013-11-30 08:59:33 · 2822 阅读 · 0 评论 -
苹果开发者账号那些事儿(一)
文章地址:http://ryantang.me/blog/2013/08/28/apple-account-1/原创 2013-11-30 08:57:44 · 4916 阅读 · 0 评论 -
苹果开发者账号那些事儿(三)
文章地址:http://ryantang.me/blog/2013/11/28/apple-account-3/原创 2013-11-30 09:00:39 · 2513 阅读 · 0 评论 -
iOS学习笔记47——图片异步加载之EGOImageLoading
上次在《iOS学习笔记46——图片异步加载之SDWebImage》中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔记《IOS学习笔记34—EGOTableViewPullRefresh实现下拉刷新》中介绍的开源项目是同一个作者。原创 2013-07-12 16:59:34 · 10673 阅读 · 10 评论 -
iOS学习笔记46——图片异步加载之SDWebImage
在开发中经常会遇到列表加载的功能,其中大部分都包括图片列表加载,但移动设备本身内存有限,而大量图片加载又很耗内存。今天主要就介绍一个第三方图片异步加载库SDWebImage,Github地址为:https://github.com/rs/SDWebImage,这个库主要实现了为UIImageView添加一个类别方法,让使用者使用图片异步加载就好像直接为UIImageView设置image一样,使用原创 2013-07-07 14:43:51 · 30121 阅读 · 5 评论 -
IOS学习笔记1—Iphone程序运行流程
Iphone程序运行流程main.m文件,iOS应用程序的主入口main函数的两个参数为命令行参数,在ios开发中不会用到这些元素,包括这两个参数是为了与标准ANSI C保持一致UIApplicationMain函数:为应用程序提供主入口点,创建新的应用程序实例和它的委托。委托负责处理应用程序状态变更,并为那些变更提供响应启动和加载窗口后,应用程原创 2012-07-12 20:14:25 · 12887 阅读 · 8 评论 -
IOS学习笔记2—Objective C—类、属性、方法
以下是我学习IOS开发的一些笔记和心得,贴出来和大家一同分享,也希望大家能补充和纠错,共同进步有Android和IOS开发问题也希望能和大家交流!Objective-C1.OC是一门基于C的面向对象语言,是C语言的一个超集,同时具有C语言的特征2.OC对类的定义和实现以及初始化 //声明类接口,继承NSObject对象(该对象是OC中所有类的顶级原创 2012-07-12 20:17:17 · 14152 阅读 · 2 评论 -
IOS学习笔记6—Objective C—Foundation框架
字符串类:NSStringNSString1.按格式生成:[NSString stringWithFormat:@"The result is %@",5];2.得到字符串长度:myString.length3.将字符串写入文件NSString *myString = @“hello world”;NSError *error;//NSHomeDirec原创 2012-07-14 18:55:06 · 6760 阅读 · 1 评论 -
iOS学习笔记44——实现滑动菜单SlidingMenu
左右滑动切换出菜单或子界面现在被越来越多的用在了各种移动应用中,例如Facebook等等,今天借助Github上John的项目实现此功能,先上效果图: 操作上,可以点击顶部的菜单按钮呼出左右隐藏视图,也可以滑动主视图进行呼出!实现上:1.到之前连接中下载或Clone工程到本地,我们需要的是里面的名为SWRevealViewCon原创 2013-04-23 15:56:48 · 11665 阅读 · 5 评论 -
IOS学习笔记38——NSJSONSerialization使用
在之前的学习笔记《IOS学习笔记33—XML解析之KissXML的使用》中介绍了如何解析XML格式的数据,今天简要介绍下如何解析JSON格式的数据,JSON数据结构以其轻量化的结构体和良好的可读性被越来越广泛的运用,特别在移动开发上,手机的流量是宝贵资源,更要求使用轻量级的数据格式进行数据传输。关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如SBJson、JSONFramwor原创 2012-12-18 08:46:46 · 25637 阅读 · 2 评论 -
IOS学习笔记39——拍照、从相册选图并对图片进行裁剪
2013第一篇,大家新年快乐!感谢一直关注我博客的同学们,有你们的支持我才有动力越做越好!有阵子没写博客了,因为前阵子着实比较忙,没时间整理,今天主要实现一个小Demo,我们知道在Instagram或Path上,头像都是正方形的,得到这种头像图片肯定要对原图进行截取,今天抽时间整理了下,先记录如下!早前写过一篇《IOS学习笔记22—文件操作(NSFileManager)结合相册小例子》,随着iOS原创 2013-01-05 16:13:58 · 38001 阅读 · 9 评论 -
IOS学习笔记19—UIImagePickerController(图像选取器)
UIImagePickerController是一种导航控制器,使用它,用户可以打开系统的图片选取器或者打开相机进行拍照。实现协议UIImagePickerDelegate中定义的委托方法可以对选定后的结果进行操作,或是没有选择取消的操作。UIImagePickerController有三个图片源:UIImagePickerControllerSourceTypePhotoLibr原创 2012-07-31 12:58:28 · 9733 阅读 · 0 评论 -
IOS学习笔记27—使用GDataXML解析XML文档
在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用第三方的库,原因是解析效率更高、使用上更方便,关于IOS平台各种解析XML库的优缺点分析,可以看下这篇文章:http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project这里主要原创 2012-08-15 11:11:17 · 33608 阅读 · 13 评论 -
IOS学习笔记3—Objective C—简单的内存管理
今天简述一下简单的内存管理,在IOS5.0以后Apple增加了ARC机制(Automatic Reference Counting),给开发人员带来了不少的方便,但是为了能更好的理解IOS内存管理机制,还是需要对其比较了解。1.在OC中,每个对象都有一个保留计数,创建时每个对象都有一个初始值为1的保留计数,释放时,保留计数都为02.创建自动释放的对象要求以一个方法创建对象时,以原创 2012-07-13 11:35:43 · 7047 阅读 · 1 评论 -
IOS学习笔记26—HTTP操作之ASIHTTPRequest(二)
利用ASIHTTPRequest也可以向服务器提交请求参数,今天就做一个登录的例子,客户端发送XML请求,然后得到服务端的响应,响应的结果是返回XML字符串。直接上代码吧,代码中有详细注释。首先在.h文件中做如下声明:#import @interface ViewController : UIViewController@property (retain,nonatomic)原创 2012-08-13 15:50:12 · 11179 阅读 · 10 评论 -
基于通讯录的名片社交——CardBox
CardBox是我在爱立信实验室开发的一款应用,在之前我的Android之旅——学习、项目、心态中有简单介绍,这款应用从构思到UI设计到最后的实现都由我们独立完成,由爱立信中国实验室的老师指导,最开始,这款应用是做为一个进入实验室的练习应用开发,随着功能的增加和知识的完善,这个练习应用逐渐越做越好,现在已经是第五个版本,从最初的单打独斗,到现在带领一个五人的团队开始开发,经历了很多,也学习了很多,原创 2012-09-13 13:28:45 · 3598 阅读 · 0 评论 -
用Java风格使用OC——NSString类别
Objective-C是IOS开发的基本语言,用过OC的同学都知道,OC的方法名很长,但是表达的意思非常明确,估计设计者也是站在见名知意的角度上去考虑,这种语法风格特别适合母语是英语的人学习,上手会很快,因为写程序就和用英语说话一样。但是对与母语非英语的人来说,过长的方法名在理解上和记忆上就有点吃力了,相信开发IOS的朋友都有一种感觉,当要使用一个方法时,一下记不住方法名,然后去网上搜或查官方文档原创 2012-10-18 10:25:43 · 6853 阅读 · 3 评论