Objective C 快速入门诗
C没有类 这让人很疲惫 对象的说法很时髦 不就是继承封装组合人人会 右走是C++,这个大众都熟悉它 左走就是objective-c,躲在僻静僻静的麦金塔 本是同根生的C 如何高举面向对象的大旗 求同存异标新立异且听一一细分清 对象的C 是不同的C 类的处理与众不同重点要区分 不重复是我的口头禅 任何时候我只说一次告诉你我的地盘 [@begincommand] | @end就是我的指示 @interface classname 声明类 @implementation classname 实现类 @protocol interfacename 声明接口 就是这么简单,你的一定要明白 我先声明对成员变量和方法的关系有远近 成员变量大大括在我的怀 关系远近 public / protected / private 来区分 若不声明全默默受着保护 静态成员变量请不要放在此 成员方法我不太爱 前面拴着绳子置于类的变量列表外 减号就是普通函数 加号就是静态函数莫怪 函数的声明有点怪 我要一眼叫出名,包括函数名和参数名 其余的类型括起来,我有空再来慢慢看 函数名和参数名之间用:分隔开 多个参数的函数那就是更怪 逗号其实不是我的爱 后续的每个参数分隔用空白 每个参数形式如 标签:(参数类型)参数名 其实只要把函数名看作是第一个参数标签 你就能领悟其中的奥妙并在调用时喜爱 成员方法太多我才懒得区分亲疏远近 它们一律都是公之于众要好好的干活 谁若不服胆敢出头犯上 就踢出头文件打入冷宫永世不能露面试试看 所有的成员方法都是虚函数 改则重载,不改就继承 不用任何标记请放心大胆随便使用 对象的类,在继承层次上考虑才显得重要 所有的类最终都继承于NSObject 因为它给你创建自己生命的方法 不继承于NSObject的只能是接口protocol 它没有成员变量只有方法 它只有声明不用实现 这点和java很相似 当然类还有一些绝活可以让你开开眼 可以动态的扩充一个类 而不总是用继承 @interface CClassA(Category)|@end @implementation CClassA (Category)|@end 源代码外包含该 类的头文件 就可以使用该Category中的方法 也可以动态的替换一个类 但是只限于用继承类来替换基类功能 [CInheritClass poseAsClass: [CBaseClass class]]; 声明之后用基类创建的对象实际上行为都是继承类 所以一个类的完整声明如下: @interface CClassA(Category): CBaseClass<IA,IB...> 类别,基类,接口一一具全 加上静态 虚函数 所有特性和C++均可对应 再加上所独有的特性 这一特性编译类语言很少有 设计得当完全可以实现动态调用dll切换功能 类的定义和使用,也有点怪 想想看一个对象的生命周期,该是如何办 创建很是别扭 这样就定义了一个类对象, CClassName* pA = [[CClassName alloc] init]; 能且只能返回对象指针 释放分为两种 自动释放声明后 [pA autorelease]; 以后可以不管 否则就必须配对 [pA release]; 注意类的构造函数init可以捕获 但是析构函数却没有这点很让人意外 使用类也有多种情况 调用成员方法用中括号 int nRtn = [pA method:param1]; 而静态成员方法不需要对象 int nRtn = [CClassName method]; 调用成员变量还是C格式 pA->m_nCount = 1; 所有的类,都可以对应一个id类型 用来引用一个对象 id cur = sq; 或者用来引用一个对象指定的接口 id<IA> cur = sq; 然后就可以调用该对象的方法和指定接口方法
Iphone APP程序结构