---------------------- Java培训、.Net培训、Android培训、IOS培训、期待与您交流! ----------------------
(1) Objective-c( OC )是在c语言基础上增加了一层面向对象的语法,对于OC对象本质是C语言结构体。
(2) OC完全兼容C语言,但要注意的是源文件的扩展名为.m
(3) 如果要兼容C++扩展名为.mm
(4) OC可以开发 Mac OS X平台和IOS平台的应用程序
(5) OC文档存放位置 : /Applications/Xcode.app/Contents/Developer/
(6) 随着IOS移动设备的普及OC的受欢迎度也逐年升高。
(1) 面向对象是一种思维方式,面向对象编程是利用这种思维方式来进行开发,当然也需要面向对象语言的支持。
(2) 面向对象是由面向过程演化而来的。如果用面向过程的思维来完成一件事,比如起床上学。
面向过程 :
第一步 : 起床叠被子
第二步 : 换衣服刷牙
第三步 : 做早饭吃早饭
第四步 : 骑车上学
它的好处是清晰,简单,但如果某些地方需要改变,起床好的叠被子放在什么地方,今天需要穿什么衣服,今天煮的早饭是什么等等。如果变成代码的话就很难维护。一个地方要改可能很多地方都要改。
而且实际开发中项目都比较大,如果用面向过程的思维来开发的话,会大大增加开发的难度,为了解决这个问题面向对象编程就产生了。
面向对象 :
我们可以把上述事件都集中在一个人身上,并为这个人声明者几种行为 :
学生{
叠被子的功能;
洗刷功能;
做早饭吃早饭功能;
骑车上学的功能;
}
他的好处是易于维护。因为我们使用这些功能的时候并不关心他的实现功能是如何的,只关心他提供的功能,置于要获得实现效果可以向这个对象调用,这样通过这个对象可以降低这件事情过程中环节 之间的耦合性,比如今天要求做什么早饭,我们只需要在做早饭那个模块中修改即可,并不影响其他功能。显示开发中对象成千上万,面对不同的需求我们只关需要把注意力集中在该对象中即可,只要不改变该对 象的结构只修改对象的某些功能实现并不影响整体的稳定性。
OC也是一种面向对象的编程语言,因此了解面向对象思想是非常重要,而且OC中为了更好地发挥面向对象编程的好处,提供了协议这种特性,这类似于java中的接口,大大提高代码的可维护性。
(1) 基本上所有关键字都是以@开头 :
@interface、@implementation、@end
@public、@protected、@private、@selector
@try、@catch、@throw、@finally
@protocol、@optional、@required、@class
@property、@synthesize、@dynamic
self、super、id、_cmd、__block、__strong、__weak、
(2) 字符串表示方法 :
C 语言 : "hello world" 输出 : printf("%s","hello world");
OC : @"hello world" 输出 : NSLog(@"hello world"); NSLog(@"%@",@"hello world");
(3) 其他语法 :
基本数据类型 | char int float double BOOL(YES/NO) |
nil | 相当于C语言的NULL,也就是0 |
基本语句 |
循环语句(while ,do while ,for),条件语句(if ,if else ,switch) |
注释 | // 和 /*..*/ |
输出 | NSLog(@"..."); NSlog(@"%@,%d...",...); |
(4) BOOL
1) 它的定义 :
typedef signed char BOOL;
2) 它有两种取值 : YES ,NO
#define YES (BOOL)1
#define NO (BOOL)0
(5) #import
1) 作用和 #include相识,都是拷贝文件文本内容
2) 可以防止文件被多次拷贝 :
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h> #import <Foundation/Foundation.h> /* 使用了三次#import指令但实际上 Foundation.h 只拷贝了一份 那么我们编写头文件的时候就不许要加入以下代码 #ifndef _FOUNDATION_H_ #define _FOUNDATION_H_ #endif */ int main(){ ... return 0; }
(1) Foundation框架是开发 IOS 和 Mac 应用程序必备框架,很多OC面向对象语法都是基于该框架的
(2) 该框架包含了很多编程接口 : 例如 :NSLog() , 反射等等...
(3) 如果想使用该框架把整个框架包含进来即可 : #import <Foundation/Foundation.h>
(1) 源文件 :
// test.m #import <Foundation/Foundation.h> int main(){ NSLog(@"hello world"); return 0; } /* 终端编译指令: cc -c test.m // 得到test.o文件 cc test.o -framework Foundation // 得到a.out可执行文件,如果没有使用Founation框架 -framework Foundation 就可以删掉 ./a.out // 执行可执行文件 */
---------------------- Java培训、.Net培训、Android培训、IOS培训、期待与您交流! ----------------------
详情请查看:http://edu.csdn.net/heima