iOS开发技术系列专栏
文章平均质量分 55
iJecky
大龄失业青年
展开
-
IOS开发开篇之Objective-C语法基础
首先声明:本系列技术博客只作学习之用,不存在其它目的。 作者从在吸收众多网友经验基础上,结合自己在IOS开发的经验将对IOS开发技术进行总结,以供后来者学习,更希望借此使自己对IOS开发的深入理解。 一、Objective-C与C的渊源 Objective-C诞生于 20 世纪 80 年代,由Brad Cox 发明,意在将流行的、可移植的 C 语言与优雅的 Smalltalk 语言结合在一起。Objective-C 是 C 语言的一个扩展集,它以 C 语言为基础,在语言原创 2011-05-31 11:21:00 · 16506 阅读 · 2 评论 -
iPhone开发内存管理之一
移动开发的特点:资源的有限性。作为手持设备,iphone的内存与传统的PC不可同日而语,这就要求我们在开发IOS程序的过程中,首要也是最重要的任务就是解决内存释放问题,本文将在网络上搜集的关于内存管理的经验予以分享。 开发iPhone 应用程序并不难,基本上就是三个词 - “memory, memory, memory” 。iPhone OS 对内存的要求很严格,有memory leak ,杀掉;内存使用超限额,杀掉。一个经过测试的程序,在使用过程中90%以上的崩溃都是内存问题造成的。在这里简原创 2011-05-31 14:48:00 · 2524 阅读 · 0 评论 -
iphone开发内存管理之二──静态全局变量的内存问题
我们在项目中,有时需要一些全局变量存储一些基本信息,那么这些全局的变量内存又是如何管理的呢?下面是网友分享的经验,具体的网址我记不清了,我在这里直接拿过来放到我的博客了,在此向写本文的作者致敬!正是由于众多具有开源精神的网友,技术才能更好的传播!项目中有时需要一些全局变量存储应用程序运行过程中的一直存在的信息,翻看了一些资料,决定使用Apple官方文档推荐的Signaleton模式,使用过程很顺利,但是随之而来的是关于内存管理的考虑,官方文档的示例代码如下:static MyGizmoClass转载 2011-05-31 15:12:00 · 7064 阅读 · 3 评论 -
iphone开发内存管理之三──深拷贝和浅拷贝
<br /><br />在iphone程序中,属性合成中的retain/copy/assign有什么区别?<br /> <br />1)assign就不用说了,因为基本上是为简单数据类型准备的,原子类类型,例如CGPoint、CGFloat等,而不是NS对象们;<br />2)retain VS copycopy:建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1<br />Copy其实是建立了一个相同的对象,而retain不是:<b原创 2011-05-31 15:29:00 · 6061 阅读 · 6 评论 -
iphone开发Objective-C新特性──类别与协议
本文将介绍Objective-C语言的新物性,其中类别(categories)允许在现有的类中添加用户自己的方法,而协议则是Objective-C语言中特有的一种继承方式,类似于java语言中的接口。下面我将首先介绍它们的作用,还将以自己在工程中的实例予以分析。 一、类别 有时我们需要在一个已经定义好的类中增加一些方法,而不想去重写该类。比如,当工程已经很大,代码量比较多,或者类中已经包住很多方法,已经有其他代码调用了该类创建对象并使用该类的方法时,可以使用类别对该类扩充新的方法。 注意:原创 2011-06-01 10:14:00 · 5638 阅读 · 3 评论 -
深入理解iPhone委托模式兼谈iPhone生命周期
每个iPhone应用程序都有一个UIApplication,UIApplication是iPhone应用程序的开始并且负责初始化并显示UIWindow,并负责加载应用程序的第一个UIView到UIWindow窗体中。UIApplication的另一个任务是帮助管理应用程序的生命周期,而UIApplication通过一个名字为UIApplicationDelegate的代理类来履行这个任务。尽管转载 2011-06-10 09:43:00 · 2585 阅读 · 0 评论 -
IOS开发之──事件响应
事件出现在iphone上有三种主要方式:通过动作、通过委托事件、通过通知。 iphone事件响应来自于UIResponder对象,而iphone通知来自于NSNotificationCenter。不必担心如何访问响应者的方法和属性,因为UIResponder对象是多数UIKit对象的父级,但是NSNotificationCenter却需要特殊访问。 一、事件和动作 多原创 2011-06-11 18:31:00 · 6278 阅读 · 0 评论 -
如何使用XCode 4创建ipa文件及提交应用程序
转载地址:http://liucheng.easymorse.com/?p=314 最近项目太忙了,没时间总结技术写博客了,把制作ipa文件及提交应用的流程分享一下吧! 使用了最新的XCode 4,虽然需要进行一些使用习惯上的改变,同时也发现了一些BUG,但总体觉得还是一个很易用的IDE,希望他会变的更好。这里主要介绍如何使用XCode 4里面的工具直接打包应用,并上传a转载 2011-06-09 19:23:00 · 13552 阅读 · 8 评论 -
iPhone操作队列 VS Java线程池
引言 在涉及多线程并发操作时,如何管理多线程对共享数据的访问以及防止线程间的死锁问题是个很重要的话题。在 Java 语言中,从 Java 5 开始, Java 提供了自己的线程池 ThreadPoolExec引言 在涉及多线程并发操作时,如何管理多线程对共享数据的访问以及防止线程间的死锁问题是个很重要的话题。在 Java 语言中,从 Java 5 开始, Java 提供了自己转载 2011-06-17 17:08:00 · 1993 阅读 · 0 评论 -
IOS开发UI展示之UITableView ──分页加载
在ios开中中,由于屏幕尺寸限制,如果需要显示的数据很多,需要用到分页加载。原理:先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据。基本上就是数据源里先只放10条, 点击最后一个cell时, 添加更多的数据到数据源中. 比如: 数据源是个array: NSMutableArray *items;ViewControll原创 2011-06-22 18:12:00 · 26790 阅读 · 8 评论 -
IOS条形码扫描技术实现
在我们开发ios应用时,尤其是电子商务类应用,时常遇到条形码扫描的业务需求,幸运的已经有开源的SDK供我们使用──条形码的SDK for ios,下面介绍一下这个开源的SDK的使用方法: 免费的条形码是zbar,下载地址是:http://zbar.sourceforge.net 具体的实现过程如下:第一步:下载zbar的sdk。第二步:创建工程第三步:把下原创 2011-06-18 11:24:00 · 14010 阅读 · 15 评论 -
iPad开发设计──用户体验准则
转自:http://daichuanqing.com/index.php/archives/1212 iPad用户体验最主要体现在内容和交互:淡化程序UI,以便用户关注所需的内容。美观的内容形式,富有真实感。充分利用设备的性能来增强内容的交互性。支持所有方位优秀iPad程序的其中一个重要因素是可以在所有方位上运行。竖向的大屏幕可以满足转载 2011-06-20 16:15:00 · 1841 阅读 · 0 评论 -
IOS开发UI展示之UIScrollView ──原理
UIScrollView 原理 转贴:http://www.cocoachina.com/bbs/read.php?tid=40965//作者:禚来强 iphone开发*****:79190809 邮箱:zhuolaiqiang@gmail.com转帖请保留在滚动过程当中,其实是在修改原点坐标当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器,假如在计时原创 2011-06-27 18:22:00 · 4006 阅读 · 0 评论 -
IOS开动画效果之──实现 pushViewController 默认动画效果
在开发中,视图切换会常常遇到,有时我们不是基于导航控制器的切换,但实际开发中,有时需要做成push效果,下面将如何实现push和pop 默认动画效果代码实例: 一、push默认动画效果 CATransition *transition = [CATransition animation]; transition.duration = 0.3f;原创 2011-06-25 10:37:00 · 14090 阅读 · 1 评论 -
IOS开发协议使用之──非正式协议和正式协议
转载地址:http://www.iloss.me/?p=545协议分非正式协议和正式协议先说说非正式协议非正式协议在Obj-c中关键字虽然是interface,但是这个和C#中的借口并不完全相同。回忆之前学过的内容,我们定义一个类Sample时,会生成一个Sample.h,代码如下:#import @interface Sample:NSObject {转载 2011-06-27 11:36:00 · 5665 阅读 · 0 评论 -
IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略
在我们实际工程中,很多情况需要从网络上加载图片,然后将图片在imageview中显示出来,但每次都要从网络上请求,会严重影响用户体验,为了不是每次显示都需要从网上下载数据,希望将图片放到本地缓存,因此我们需要一个好的的缓存策略,今天我将我在项目工程中的实际经验分享给大家,我这里主要介绍一下强大的ASIHTTPRequest的缓存策略,以及使用方法: 下面是具体步骤:原创 2011-06-29 10:12:00 · 17965 阅读 · 9 评论 -
IOS开发网络篇之──ASIHTTPRequest详解
ASIHTTPRequest 详解, http 请求终结者版权归旺财勇士所有〜转载需声名〜原贴地地址:http://wiki.magiche.net/pages/viewpage.action?pageId=2064410被李旭添加,被李旭最后更新于Mar 25, 2011 (查看更改)目录目录发起一个同步请求创建一个转载 2011-06-29 17:55:00 · 14685 阅读 · 4 评论 -
IOS开发基础知识要点
iOS开发知识要点原贴地址:http://wiki.magiche.net/pages/viewpage.action?pageId=884775 转贴请注明原贴地址,尊重他人的劳动成果,在此谢谢原文作者。目录目录关于String:UIView与UIViewController:内存相关:runtime与cocoa架构:IO与网络相转载 2011-06-29 18:15:00 · 2522 阅读 · 1 评论 -
IOs开发Objective-C基础之──多态
Objective-C语言是面向对象的高级编程语言,因此,它具有面向对象编程所具有的一些特性,即:封装性、继承性和多态性。今天介绍一下Objective-C中的多态性。 一、什么是多态 多态:不同对象以自己的方式响应相同的消息的能力叫做多态。 由于每个类都属于该类的名字空间,这使得多态称为可能。类定义中的名字和类定义外的名字原创 2011-07-01 15:12:00 · 6004 阅读 · 2 评论 -
如何在iOS中使用Block──How to use Blocks with iOS
Block可以帮助我们组织独立的代码段,并提高复用性和可读性。iOS4在UIKit中引入了该特征。超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识。Block是什么样的? 你可以使用^操作符来声明一个Block变量,它表示一个Block的开始。int num1 = 7; int(^aBlock)(int) = ^)int n翻译 2011-06-30 14:25:00 · 4264 阅读 · 0 评论 -
IOS开发技术之──头文件引用(@class/#import/#include)
一、 Objective-C 中 #import 和 #include 的区别 预编译指令Objective-C:#importC,C++:#include#import由gcc编译器支持在 Objective-C 中,#import 被当成 #include 指令的改良版本原创 2011-07-07 14:17:48 · 12939 阅读 · 0 评论 -
IOS开发网络篇之──ASIHTTPRequest下载示例(支持断点续传)
在工程中,我们会常常遇到需要下载的程序,比如下载在线音乐、下载图片等等,今天我将介绍一下利用ASIHTTPRequest的下载示例,支持断点续传,利用ASIHTTPRequest下载以及断点续传的原理在我的博客:http://blog.csdn.net/pjk1129/artic原创 2011-07-08 17:09:50 · 38488 阅读 · 33 评论 -
IOS开发基础篇之──Object-C Stack 容器
原贴地址:http://blog.csdn.net/cloudhsu/article/details/6589311由于Object-C中没有提供Stack容器,因此自己实践了一个简单的stack容器#import @interface NSStack : NSObject {转载 2011-07-08 17:18:04 · 4711 阅读 · 0 评论 -
IOS开发基础篇之──Object-C 实践Queue容器
原贴地址:http://blog.csdn.net/cloudhsu/article/details/6589313Object-C同样没有提供Queue容器,因此我也自己实践了一个#import @interface NSQueue : NSObject { NSMutable转载 2011-07-08 17:20:37 · 4049 阅读 · 0 评论 -
IOS开发基础之──viewDidUnload/dealloc调用分析
在IOS开发中,内存管理重要性不言而喻,而如何理解viewDidUnload/dealloc调用对理解内存管理的实质有着非常重要的作用,下面将网友对两者的调用时机摘抄如下,这些分析应该能对理解程序的生命周期有所帮助。网友一观点:viewDidLoad并不是需要和 viewDidU原创 2011-07-21 16:07:34 · 8827 阅读 · 1 评论 -
IOS开发基础之──双缓冲的实现
原理不复杂:1. 创建一个bitmap context2. 在bitmap context上画东西3. 通过bitmapcontext生成一个CGImage4. 通过UIImage把CGImage内容画到屏幕上示例代码: // create the bitmap context原创 2011-07-20 13:37:31 · 4496 阅读 · 0 评论 -
iphone/android比较学习之──提示框的使用
一、iPhone中的UIActionSheet与UIAlterView首先,在.h文件中添加Protocol,(Protocol相当于Java中的interface)@interfaceActionSheetViewController : UIViewController{..原创 2011-07-20 13:40:13 · 2555 阅读 · 0 评论 -
IOS开发基础之──读取本地HTML文档
下面将介绍如何如何读取本地端的Html文档#import #import “LoadLocalHtmlViewController.h”@interfaceLoadLocalHtmlViewController : UIViewController { IBOutle原创 2011-07-20 13:51:58 · 15337 阅读 · 3 评论 -
IOS开发基础之──MVC模式
转自:http://blog.csdn.net/Arrui/article/details/6399296整理自斯坦福大学iphone开发公开课,并加入了一些自己的理解。一、概念 Model = 你的应用程序是什么,是用户界面无关的部分 Controller = 你的应用程序如何转载 2011-07-20 14:37:55 · 4485 阅读 · 0 评论 -
iphone/android比较学习之──图片、文件、字符串
1. 显示图片这两个平台都很简单:iphone中使用UIImage,告诉它文件path就可以了android中使用ImageView,同样非常简单2. 读取文件iphone中一般借助NSBundle的pathForResource/pathForDocuments获取资源文件路径原创 2011-07-20 13:43:02 · 1513 阅读 · 0 评论 -
IOS开发基础之──获取时间示例
取得当前的年月日,当前的时分秒获得,周几和星期几获得NSDate*date = [NSDate date];NSCalendar*calendar = [NSCalendar currentCalendar];NSDateComponents*comps; // 年月日获得com原创 2011-07-20 13:45:38 · 11004 阅读 · 0 评论 -
iphone/android比较学习之──获取屏幕分辨率
由于android手机厂商不同,机型不同,屏幕分辨率很多,为了支持更多型号,程序中获取屏幕分辨率至关重要,即便是iphone,不同型号分辨率也不同,现在介绍一下android/iphone中获取的方法1. Android中获取屏幕分辨率的方法Displaydisplay = ((原创 2011-07-20 13:49:08 · 2251 阅读 · 0 评论 -
IOS开发基础之──main函数及预编译前缀头文件
一、main函数介绍如果你熟悉 C 或类似的编程语言,你可能在“Other Sources”中认出应用程序 的起始程序 main.m。Main.m 任何在主函数和HelloWorldAppDelegate类之间做的处理,属于iPhone SDK的后台魔法,你没有控制的权限。因为你原创 2011-07-20 14:19:51 · 4620 阅读 · 0 评论 -
IOS开发之──应用之间调用(2)
在上一篇文章中,讲解了如何在自己应用之间调用问题,今天介绍一下如果调用IOS自带的app的方法一、调用app store界面方法在实际开发中,往往要推荐自己其他应用和推荐自己的收费软件,那么我们就需要在程序中直接连接到app store的相应页面。实际上的做法很简单,使用的还是U原创 2011-07-29 11:14:29 · 7413 阅读 · 2 评论 -
IOS开发之──应用之间调用(1)
iphone应用之间调用步骤: 1)在plist文件中,注册对外接口 在xcode group&files 里面,展开 resources选择info.plist 鼠标右击information property list ,然后从列表中选择URL types原创 2011-07-28 15:36:55 · 4428 阅读 · 4 评论 -
IOS开发技巧之──字数统计函数
微博对每条信息有 140 字的上限限制,下面微博字数统计函数,做微博客户端应用的开发者可以以此加入字数统计功能以方便用户- (int)countWord:(NSString*)s{ int i,n=[s length],l=0,a=0,b=0;原创 2011-07-29 17:22:19 · 3600 阅读 · 0 评论 -
IOS开发之──获得设备类型和系统版本号
在实际开发中,有时需要考虑到兼容性问题,这两个信息还是很有用的,我一般都是程序开始时读取,存到公共变量里。#import "sys/utsname.h" /*! * get the information of the device and system * "i386"原创 2011-07-29 11:17:22 · 8051 阅读 · 0 评论 -
IOS开发之──传感器使用
在实际的应用开发中,会用到传感器,下面首先介绍一下iphone4的传感器,然后对一些传感器的开发的API作一简单介绍一、 iPhone 4的传感器技术 进入正题,iPhone 4到底用上了哪些传感器呢? 1) 影像传感器 简单说就原创 2011-07-30 09:35:05 · 14035 阅读 · 1 评论 -
IOS开发技巧之──验证邮箱合法性
下面给出两种不同的方法验证邮箱输入合法性//通过区分字符串-(BOOL)validateEmail:(NSString*)email{ if((0 != [email rangeOfString:@"@"].length) &&原创 2011-08-02 09:22:29 · 13703 阅读 · 3 评论 -
IOS开发时间格式转换之──C语言中time_t数据类型转为NSString类型
一、time_t介绍包含文件:#ifndef __TIME_T#define __TIME_T /* 避免重复定义 time_t */typedef long time_t; /* 时间值time_t 为长整型的原创 2011-08-05 09:18:11 · 9191 阅读 · 0 评论