Objective C学习总结(一)
年纪大了,记忆力明显下降,不得不靠温习和总结来巩固之前所学的东西。除了温习书本上原有知识之外,也加入了个人的一些理解。写出来希望对也正好学习objective-c的朋友有些帮助。有些的不对、不好的地方欢迎留言指正。
Obj-C的类用@interface来声明。@符号作用是告诉编译器,后边的为Object-C特有的内容。
@interface为关键字。几种Obj-C中常用的关键字
1、@interface 用做类的声明,放在.h文件中
2、@implementation 用作类的实现,放在.m文件中
3、@protocol 这个东西据说是协议,目前只知道个概念,还未深入了解
4、@end 用在某些关键字结束位置
5、@selector
6、@protocol 协议
7、@property 属性
8、@synthesize
这些关键字之后都会接触到。
我们来看一个具体的类的声明和实现
@interface MyObject : NSObject { int memberVar1; // 實體變數 id memberVar2; } +(return_type) class_method; // 類方法 -(return_type) instance_method1; // 實體方法 -(return_type) instance_method2: (int) p1; -(return_type) instance_method3: (int) p1 andPar: (int) p2; @end
如果你是写c或者c++的,是不是感觉很不习惯,没关系我刚开始和你一样。多看几眼,消化几个晚上就不会再有问题了。我们来详细分析下。
@interface
@end
其实就相当于c++中的
class
{
};
可能会有人大喊,{},声明代码里有这样的大括号。是的,有的,如果说c++里的大括号是个大口袋,变量函数都往里丢的话,这里的大括号就是专款专用的变量区域,因为这里放变量,接口见下。
+
-
不知道你看到这两个符号的时候是啥感觉,反正我当时除了茫然,还很佩服语言开发者,懒,真够懒的,就用这么两个符号来区分函数类型。不过问题也不大,多看看旧习惯了。
+ 等同于c++中的static函数
- 就是一般的接口啦
为啥不能省去 - 呢,static函数需要特殊声明,但普通函数没有必要啊,哪位朋友了解,可不可以帮我解释下。
函数返回值以及名称,跟c或c++没有区别,都是
返回值类型 函数名
之后的参数有些不同
函数名后用 “:“ 区分开第一个参数,(int ) p1,这里参数的类型要加 (),不知道为啥。
第二个参数的格式是:
参数说明:(类型)参数名称
书上说这种写法的好处是,可读性更强,但是参数名称不可以达到次效果吗?这种做法是不是多此一举呢?我先不做结论,因为目前还接触的不深。
例子代码:
- (void) setColorToRed: (float)red Green: (float)green Blue:(float)blue; [myColor setColorToRed: 1.0 Green: 0.8 Blue: 0.2];
差点忘了说”继承“了,其实继承和C++的没啥区别。这个类继承自NSObject,NSObject就类似于CObject,是所有NS类的基类。
说明:本文中代码摘自http://zh.wikipedia.org/wiki/Objective-C