Objective C学习总结(二)

总结一犯了个错误,自己先总结反思下

总结意在使记忆更深刻,而不是拿出来作秀的,简单明了即可,不能废话太多。

总结(一)里回顾了.h文件中的类的说明

这里回顾.m文件中实现接口的函数体

(之所以用.m来做扩展名,m代表message,愿意为objective-c是基于消息的)

和c/c++一样,obj-c的.m文件,开始也是引入头文件部分

c/c++用的是 

#include

obj-c则是

#inport

书上说#inport要优于#include,真假其实不重要,无所谓的事情。

关于是

#inport "头文件.h"

还是

#inport <头文件.h>

很容易理解,和c/c++,标准库,系统等头文件用<>,自定义的用的”“。

@implementation 类名
@end

这个区域内是放类接口具体实现的,如下:

#import "Recipient.h"
 
@implementation Recipient
 
- (id) hello
{
    printf("Recipient says hello!\n");
 
    return self;
}
 
@end
这里实现的是类Recipient的hello接口。vc里,用 :: 来标记具体的函数是属于哪个类的。而obj-c则是通过
@implementation

来标记。这两者有何不同,有什么优劣之分吗?

简单的例子代码:

#import<Foundation/Foundation.h>
 
int main(int argc, char *argv[]){
    NSAutoreleasePool * pool = [NSAutoreleasePool  new];
 
    NSLog(@"Hello World!");
 
    [pool drain];
    return 0;
}
main函数同c/c++,但函数调用就不太一样了
obj-c里,据说不是函数调用,而是向某个对象发送消息。一切的一切的一切的流程都是基于消息的(这也就是为啥文件扩展名用.m)
NSAutoreleasePool * pool = [NSAutoreleasePool  new];
这句代码用c/c++来解释,就是
NSAutoreleasePool * pool = new NSAutoreleasePool;
只是函数的调用,变成了消息的传递。这样做的好处是,可以更灵活,一个类可以接收或者转发自己未定义的消息。而如果函数调用的话,编译就会报错。
感觉这样做,是要比c/c++好。
NSLog(@"Hello world!");
NSLog,就相当于MessageBox,只是box是弹出,这个是输出信息。
这里@是告诉编译器,后边的字符串,当做一个NSString来处理


posted on 2011-06-14 14:28  荒原小兽  阅读(304)  评论(0编辑  收藏  举报