随笔分类 -  Objective-C

Objective-C学习之旅(十二)----源文件组织
摘要:1、拆分接口和实现部分 Objective-C类的源代码被拆分成了两部分。一部分是接口(interface),用来提供类的公共描述。也就是累的@interface指令、公共的Struct定义,enum常量、#defines和extern全局变量等。另一部分是实现(implementation)。如:类的@implementation指令、全局变量的定义、私有struct等。2、导入头文件的不同 导入头文件是使用尖括号和引号的不同。 使用尖括号是用来导入系统的头文件,如:#import<Cocoa/Cocoa.h>。这个头文件对你的项目来说是只读的,因为它属于系统。 使用引号是导入项 阅读全文
posted @ 2013-01-13 12:38 千里烟波226 阅读(381) 评论(0) 推荐(0) 编辑
Objective-C学习之旅(十一)----复合&继承
摘要:一、继承在对象间建立了"is a"(是一个) 的关系,如果是"X是一个Y"就可以使用继承。二、复合建立的原则是"has a"(有一个)的关系,如果能说"X有一个Y"就可以使用复合。三、讲到复合必须要说的就是存取方法,存取方法和复合是密不可分的,我们通常都会为被复合的对象编写存取方法。它有2中类型的存取方法,setter方法和getter方法,前者告诉对象将属性改为什么,后者要求对象提供属性的值。四、Cocoa的存取方法命名规则,对于返回属性值的存取方法,名称中不能使用get这个词。 阅读全文
posted @ 2013-01-13 11:53 千里烟波226 阅读(730) 评论(0) 推荐(0) 编辑
Objective-C学习之旅(十)----Blocks语法
摘要:一、Blocks Block是一个C Level的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从IOS4.0开始就很好地支持Blocks。Blocks主要用在一些回调函数的用法上,2个对象通信需要一些回调的时候,比如说2个对象在运行,我们需要知道其中一个对象什么时候完成,我们就需要一个回调函数,之前我们用代理,但是有些小的地方用代理大材小用,Blocks可以用来做一些代理的很好地支撑,可以用来做边界或者一些地方的回调函数。心得:Blocks实质其实就是回调函数。二、C函数指针和Blocks申明 C语言函数指针 int (* CFunc) (i. 阅读全文
posted @ 2013-01-03 14:24 千里烟波226 阅读(3517) 评论(1) 推荐(1) 编辑
Objective-C学习之旅(九)----Category语法
摘要:一、Category类别 1、Category能把一个类的实现分为若干不同文件中。 2、每个Cagegory是类的一部分。 3、类的不同类别可以单独编译(可以让不同开发者负责一个Category) 4、如果把一个类Category(申明和实现)放到一个.m文件中,那么该Category外界不能访问。这样实现了C++中class的private功能 5、Category实际上就是对类的扩展。二、缺点 1、类别Category只能扩展函数,消息,不能扩展字段,变量等。Category只能加一些方法不能加一些变量和字段。三、类别Category命名规范 1、一般Category命名规范... 阅读全文
posted @ 2012-12-26 01:17 千里烟波226 阅读(1731) 评论(0) 推荐(0) 编辑
Objective-C学习之旅(八)----代理设计模式
摘要:一、协议的具体用法 协议的具体用法就是使用代理。代理设计模式相当于C#当中的委托。二、如何实现代理 这里介绍一个案例三、代理两端如何通讯 代理两段的通讯业就是说代理端和被代理端如何通讯的。四、调用前后顺序的问题如果说你要调用一个协议,但是你在调用的时候你的协议还没有声明,所以程序会报错,解决办法有2个,第一,可以在前面声明一下,例如:@protocol DogBark;放在#import <Foundation/Foundation.h>下面。第二,前向声明可以声明类,例如,class Dog; 如果我们把协议声明放到了前面,但是类的声明在我们声明的后面,那样又会报错,所以解决办法 阅读全文
posted @ 2012-12-25 23:38 千里烟波226 阅读(2612) 评论(2) 推荐(2) 编辑
Objective-C学习之旅(六)----内存管理4----自动释放池
摘要:一、O-C当中的内存释放,并不是像java/.net那样有一个自动的释放池,开发人员不用去关心有关内存释放的问题,O-C里面的自动释放池比c语言的手动内存管理要好一些,但是相对于java/.net来说又弱一些,所以说O-C当中的释放属于半自动的释放池。二、什么是自动释放池 1、Autorelease pool 自动释放池(Autorelease pool)是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来回收统一释放 自动释放池本事销毁的时候,池子里面所有的对象都会做一次release操作 2、autorelease 任何OC对象只要调用autorelease方法,就会... 阅读全文
posted @ 2012-12-23 21:55 千里烟波226 阅读(8083) 评论(0) 推荐(1) 编辑
Objective-C学习之旅(五)----内存管理3----MyArray
摘要:1、NSMutableArray 典型用法View Code NSMutableArray *array = [[NSMutableArray alloc] init]; for (int i = 0; i < 4; i++) { Dog *dog = [[Dog alloc] init]; [dog setID:i]; [array addObject:dog]; [dog release]; } for (Dog *d in array){ ... 阅读全文
posted @ 2012-12-23 19:29 千里烟波226 阅读(604) 评论(0) 推荐(0) 编辑
Objective-C学习之旅(四)----内存管理2----retain点语法
摘要:一、retain属性的主要作用 1、O-C内存管理和点语法 1>OC内存管理正常情况要使用大量的retain和relrese操作 2>点语法可以减少使用retain和release的操作二、@property(retain)编译器如何申明 编译器对于@property中的retain展开是不一样的 主要是要释放上一次的值,增加本次计数器 在dog.h中声明的: @property(retain)Dog *dog; 展开后为: -(void) setDog:(Dog *)aDog; -(Dog *)dog;三、@synthesize编译器如何实现展开 在dog.m中... 阅读全文
posted @ 2012-12-23 13:32 千里烟波226 阅读(3773) 评论(4) 推荐(0) 编辑
Objective-C学习之旅(三)----内存管理1--点语法
摘要:1、点语法及其好处 1、方便程序员能够很快的转到O-C上来 2、让程序设计简单化 3、隐藏了内存管理细节 4、隐藏了多线程、同步、加锁细 节 5、点语法的使用 Dog *dog=[[Dog aloc] init]; [dog setAge:100]; int dogAge=[dog age]; NSLog(@"Dog Age is %d",dogAge); 下面的代码用点语法 dog.age=200;//调用setAge方法 dogAge=dog.age;//调用age方法 这里的点不上调用的dog这个对象的字段,而且在调用方法。dog.age是在调用setAge这个... 阅读全文
posted @ 2012-12-23 00:33 千里烟波226 阅读(2277) 评论(0) 推荐(0) 编辑
Objective-C学习之旅(二)----函数、类、作用域
摘要:1、面向对象概述比较项目 OC基类 NSObject单继承 是单继承接口 支持接口(协议)@protocol多继承 使用接口来实现多继承多态 支持多态抽象类 支持抽象类异常处理 简单的异常处理@try @catch @finally虚函数 所有的函数都是虚函数头文件 #import2、OC有别于C/C++的一些比较 1、BOOL YES NO 在oc中布尔类型是BOOL,布尔值是yes,no 2、id类型 O-C中每个目标都可以表达为id类型,可以认为是NSObject*或者是voi... 阅读全文
posted @ 2012-12-22 23:03 千里烟波226 阅读(5969) 评论(0) 推荐(0) 编辑
Object-C学习之旅(一)----纠错篇---the running destination my Mac 64-bit is not valid for running the scheme
摘要:1、问题描述the running destination my Mac 64-bit is not valid for running the scheme2、solutionSolution,to change the Base SDK Version: 1) Click on the project icon in the left hand panel. 2) In the right hand panel that appears, select Build Settings » all. 3) You'll see the option to change the 阅读全文
posted @ 2012-12-13 16:37 千里烟波226 阅读(390) 评论(0) 推荐(0) 编辑
快速掌握 Objective-C (For C/C++ developer)
摘要:本文通过触类旁通的启发方式,方便具备C/C++经验的筒子们快速掌握Objective-C。基本语法首先看一段简单的Objective-C的代码.Objective-C支持和C++一样的分离编译模式。C++中是*.h和*.cpp文件; Objective-C是 *.h和 *.m文件来组成一个类。下面是Rectangle.h文件[html] view plaincopyprint?#import <Foundation/NSObject.h> @interface Rectangle: NSObject { int width; int height; @private int pri 阅读全文
posted @ 2012-12-12 16:17 千里烟波226 阅读(678) 评论(0) 推荐(1) 编辑