摘要: TCP和UDP是两种最为着名的运输层协议,二者都使用IP作为网络层协议,TCP使用不可靠的IP服务,但是却提供一种可靠的运输层服务UDP为应用程序发送和接收数据报。UDP是不可靠的,它不能保证数据报能安全无误的达到目的地。IP(网际协议)是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。ICMP(internet控制报文协议)是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。IGMP(internet组管理协议)。它用来把一个UDP数据多播到多个主机。ARP(地址解析协议)和RARP( 阅读全文
posted @ 2014-02-25 17:41 codeartistry 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。iPhone官方只支持静态库联编,本文就以静态库为例讲解iPhone中静态库的具体用法。在实际的开发过程中,可能在项目设计阶段把一些功能比如图 阅读全文
posted @ 2014-02-25 17:19 codeartistry 阅读(113) 评论(0) 推荐(0) 编辑
摘要: HTTP状态码100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本200——交易成功201——提示知道新文件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请求收到,但返回信息为空205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件206——服务器已经完成了部分用户的GET请求300——请求的资源可在多处得到301——删除请求数据302——在其他地址发现了请求数据303——建议客户访问其他URL或访问方式304——客户端已经执行了GET,但文件未变化305——请求的资源必须从服务器指定的地址得到306——前一版本HT 阅读全文
posted @ 2014-02-25 17:16 codeartistry 阅读(118) 评论(0) 推荐(0) 编辑
摘要: lsof -i:3306查看3306端口被谁占用kill -9 [PID]结束指定的 PID 执行程式history -c清除mac 系统终端的历史命令记录ls列出当前目录下所有文件man [命令]查询某个命令的使用方法在终端里输入下面命令即可让它们显示出来。 defaults write com.apple.finder AppleShowAllFiles -bool true 如果想恢复隐藏,可以用这个命令: defaults write com.apple.finder AppleShowAllFiles -bool falsechflags hidden (文件/文件夹的相对或绝对路径 阅读全文
posted @ 2014-02-25 17:15 codeartistry 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 在这些设计模式中,我发现自己最需要用到的是Singleton模式。在程序中,我需要一系列的对象,他们每一个内部都包含有一组变量和功能,是静态的,而且整个程序都只需要拥有一个该类的对象。例如:1.控制程序执行的命令器2.管理数据库3.音效控制4.文件处理单例是在程序声明周期里 有且仅有 被实例化过一次的类。为确保实例化的唯一,利用类的 类(static)方法来生成和访问对象。至此,你便可以在程序中任何地方访问类的单例对象,因为只实例化唯一的一次,所以,并不用 alloc、init、autorelease初始化方法。Singleton 模式的实现在objective-C中,实现Singleton模 阅读全文
posted @ 2014-02-25 17:08 codeartistry 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字常量区 —常量字符 阅读全文
posted @ 2014-02-25 17:07 codeartistry 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 第一章 核心动画概念核心动画,开发人员可以为他们的应用创建动态用户界面,而无需使用低级别的图形 API,如 OpenGL 来获取高效的动画性能。前言,核心动画的好处1.简单易用的高性能混合编程模型。2.类似视图一样,你可以通过使用图层来创建复杂的接口。 通过是CALayer来使用更复杂的一些动画。 3.轻量级的数据结构,它可以同时显示并让上百个图层产生动画效果。 控制多个CALayer来显示动画效果 4.一套简单的动画接口,可以让你的动画运行在独立的线程里面,并可以独立于主线程之外。5.一旦动画配置完成并启动,核心动画完全控制并独立完成相应的动画帧。6.提高应用性能。应用程序只当发生改变的.. 阅读全文
posted @ 2014-02-25 16:53 codeartistry 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 我们演示一个经典的卖票的例子来讲NSThread的线程同步:[cpp]view plaincopy#import@classViewController;@interfaceAppDelegate:UIResponder{inttickets;intcount;NSThread*ticketsThreadone;NSThread*ticketsThreadtwo;NSCondition*ticketsCondition;NSLock*theLock;}@property(strong,nonatomic)UIWindow*window;@property(strong,nonatomic)Vi 阅读全文
posted @ 2014-02-25 16:50 codeartistry 阅读(181) 评论(0) 推荐(0) 编辑
摘要: Run loops是线程的基础架构部分。一个run loop就是一个事件处理循环,用来不停的调配工作以及处理输入事件。使用run loop的目的是使你的线程在有工作的时候工作,没有的时候休眠。Run loop的管理并不完全是自动的。你仍必须设计你的线程代码以在适当的时候启动run loop并正确响应输入事件。Cocoa和CoreFundation都提供了run loop对象方便配置和管理线程的run loop。你创建的程序不需要显示的创建run loop;每个线程,包括程序的主线程(main thread)都有与之相应的run loop对象。但是,自己创建的次线程是需要手动运行run loop 阅读全文
posted @ 2014-02-25 16:44 codeartistry 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 做iphone开发首先第一件就是得知道iphone程序的生命周期,说白点就是当点击程序图标启动程序开始到退出程序整个使用运行过程中底下的代码都发生了什么,只有理解了这个才能游刃有余的掌握Iphone程序的开发,否则在写程序的时候有点浑浑僵僵不知所以然的感觉。首先忘记Xcode给我们生成的代码模板,忘记xib忘记ib,我们亲自一行一行来写一个HelloWorld程序,虽然真正开发项目的时候并不需要这样做Xcode模板和ib都会为我们做好这些打杂的事情,但是现在完全由我们自己来写,放心这个程序是个非常的简单的HelloWorld 程序,代码也很少总共加起来不过10几行。在这之前我们先来看看obje 阅读全文
posted @ 2014-02-25 16:25 codeartistry 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1.UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它。它本身完全是由CoreAnimation来实现的(Mac下似乎不是这样)。它真正的绘图部分,是由一个叫CALayer(CoreAnimationLayer)的类来管理。UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等等,实际上内部都是在访问它所包含的CALayer的相关属性。2.UIView有个layer属性,可以返回它的主CALayer实例,UIView有一个layerClass方法,返回主layer所使用的类,UIView的子类,可以通过重载这个方法, 阅读全文
posted @ 2014-02-25 16:15 codeartistry 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 经常使用UIView以及它的子类,一般对于init:,viewDidLoad:,dealloc:等方法应该是比较熟悉和了解的。对于其它几个基本方法就不那么常用了,为了更好地编程使用这些方法,在此集中收集整理一下各方法调用的时机和作用:init:方法在init方法中实例化必要的对象(遵从LazyLoad思想)init方法中初始化ViewController本身loadView:方法这是当没有正在使用nib视图页面,子类将会创建自己的自定义视图层。绝不能直接调用。如果手工维护views,必须重载重写该方法。当view需要被展示而它却是nil时,viewController会调用该方法。loadVi 阅读全文
posted @ 2014-02-25 16:14 codeartistry 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 一般来说这种情况还是蛮多的,比如你从文件中读入了一个array1,然后想把程序中的一个array2中符合array1中内容的元素过滤出来。正 常傻瓜一点就是两个for循环,一个一个进行比较,这样效率不高,而且代码也不好看。其实一个循环或者无需循环就可以搞定了,那就需要用搞 NSPredicate这个类了~膜拜此类~1)例子一,一个循环NSArray *arrayFilter = [NSArray arrayWithObjects:@"pict", @"blackrain", @"ip", nil];NSArray *arrayCont 阅读全文
posted @ 2014-02-25 16:11 codeartistry 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 一、UIColorUIColor是UIKit中存储颜色信息的一个重要的类,一个UIColor对象包含了颜色和透明度的值,它的颜色空间已经针对IOS进行了优化。UIColor包含了一些类方法用于创建一些最常见的颜色,如白色,黑色,红色,透明色等,这些颜色的色彩空间也不尽相同(白色和黑色是kCGColorSpaceDeviceGray,红色的色彩空间是kCGColorSpaceDeviceRGB)。此外UIColor还有两个重要的属性:一个是CGColor,一个是CIColor(5.0之后添加)。这两个属性就可以把UIColor,CGColor,CIColor三个对象联系起来了,后面会详细介绍这三 阅读全文
posted @ 2014-02-25 16:08 codeartistry 阅读(347) 评论(0) 推荐(0) 编辑
摘要: NULL ValuesThese macros define null values for classes and instances.NULL可以用在C语言的各种指针上#define __DARWIN_NULL #define __DARWIN_NULLConstantsc 特有的,例子:int *pointerToInt = NULL;char *pointerToChar = NULL;struct TreeNode *rootNode = NULL;nilDefines the id of a null instance.定义一个实例为空。Available in Mac OS X 阅读全文
posted @ 2014-02-25 16:07 codeartistry 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1. IOS应用或者说移动设备上的应用的最大的特征是:Fast Launch, Short Use。移动用户路上、机场候机中、地铁中等场合使用,每次用户使用移动设备的时间大多是非常短,需要应用能够快速启动。在IOS 4多任务的环境下,用户在同一时间只和当前的应用交互,其他应用被运行在系统的后端环境亦即内存中,直到用户切换环境唤起或者用户/系统将其从内存中彻底移出。显然,内存中存活的IOS应用从后端切换到前端的速度要比IOS应用启动的速度快得多,然而需要指出的是,由于内存的限制,系统有可能可能将最近不使用的应用从内存中清除,由于该清除动作可能发生在任何时间并无没有任何提示,IOS应用应当在切换到 阅读全文
posted @ 2014-02-25 16:05 codeartistry 阅读(219) 评论(0) 推荐(0) 编辑
摘要: #import@interfaceSort : NSObject{}//选择排序-(void)selectSortWithArray:(NSArray *)aData;//插入排序-(void)insertSortWithArray:(NSArray *)aData;//快速排序-(void)quickSortWithArray:(NSArray *)aData;-(void)swapWithData:(NSMutableArray *)aData index1:(NSInteger)index1 index2:(NSInteger)index2;@end#import"Sort.h 阅读全文
posted @ 2014-02-25 16:03 codeartistry 阅读(154) 评论(0) 推荐(0) 编辑
摘要: iOS中的永久存储也是相对的(以下所讲的永久存储也是如此),在用户不对设备进行恢复或还原操作时,部分数据是可以做到永久存储的(即应用被删除后重新安装数据不会丢失,在替代UUID方法中较为有效)。几个概念:1.UUID: (Universally Unique Identifier) 通用唯一标识符,是一个标识符标准用于软件架构,由开放软件基金会(OSF)作为分布式计算环境(DCE)的一部分而制作的标准。UUID的目的是让分布式系统中的所有元素都能有唯一的辨识资讯,不需要透过中央控制端来做辨认资讯的制定。如此一来每个人都建立一个与其他人不同的标 识符,这样在存储到数据库中时,就不用担心名称相同的 阅读全文
posted @ 2014-02-25 15:45 codeartistry 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。尽管TCP/IP协议是互联网上最流 阅读全文
posted @ 2014-02-25 14:54 codeartistry 阅读(193) 评论(0) 推荐(0) 编辑