一 OC语法
1.关键字
基本上所有关键字都是以@开头,比如:
@interface , @implementation, @end, @public, @protected, @private
2.字符串以@开头
比如 @"hello"是OC中的字符串,而"hello"是C中的字符串。
3.其他语法
1) 基本数据类型: char , int , float, dobule, BOOL(YES/NO)
2) nil : 相当于C语言中的NULL,也就是0
3) 基本语句 :循环语句( do while, while , for )
条件语句 ( if , if else, switch )
4) 注释 : // 和 /* */
5) 屏幕输出:
NSLog(@"Hello");
NSLog(@"age is %d" , 20);
4.OC 程序的开发过程
与C语言类似:
二 第一个OC程序
1 新建一个OC程序 main.m
1 #import <Foundation/Foundation.h> 2 3 int main(int argc, const char * argv[]) { 4 NSLog(@"Hello World !"); 5 6 return 0; 7 }
第1行代码 #import 的用途:
1.跟#include一样,拷贝文件的内容。
2.可以自动防止文件的内容被重置拷贝。
3.包含Foundation 框架的主头文件就可以使用整个框架。
2 输入编译指令,编译main.m 文件
打开终端,输入以下命令,然后按回车:
cc -c main.m -framework Foundation
输入指令后,如果没有显示异常,说明编译成功了,会在终端所在目录编译生成main.o,成为"目标文件",文件后缀为".o",目标文件名与源文件名一致。这样main.m文件编译成功为就生成了main.o文件。
3 链接目标代码
源文件编译成功后,会生成一个.o目标文件,还不能运行。需要组合所有的目标文件,还需要将OC语言的函数库包含进来,才能生成可执行文件。
注意:将所有相关联的.o目标文件,以及OC语言的函数库组合在一起生成可执行文件的过程,称之为"链接"。
在终端中输入以下命令,如果需要同时链接多个目标文件,这样写:cc one.o two.o three.o -framework Foundation
cc main.o -framework Foundation
链接成功后会生成一个可执行文件,默认的文件名为"a.out"。
4 运行程序
在终端中输入以下命令,按回车就可以运行程序了。a.out就是可执行文件的名称。
./a.out
三 第二个OC程序
OC中的BOOL和C语言中的 boolean 是一样的,在O语言中,非0即为真。在OC语言中,YES(真)为1,NO(假)为0。
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { BOOL b1 = YES; BOOL b2 = NO; BOOL b3 = 1; BOOL b4 = 0; NSLog(@"b1=%d",b1); NSLog(@"b2=%d",b2); NSLog(@"b3=%d",b3); NSLog(@"b4=%d",b4); return 0; }
运行代码,得到以下结果:
2016-02-11 20:54:41.127 T1[1091:66725] b1=1 2016-02-11 20:54:41.128 T1[1091:66725] b2=0 2016-02-11 20:54:41.128 T1[1091:66725] b3=1 2016-02-11 20:54:41.128 T1[1091:66725] b4=0 Program ended with exit code: 0
四 练习
1. 练习1 for循环打印 1-200内不能被3整除的数
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //for循环打印 1-200内不能被3整除的数 printf("这些数不能被3整除: "); for(int i=1; i<=200; i++){ if( i% 3 != 0){ printf(" %d " , i); } } } return 0; }
获得结果如下:
2.练习2 用for循环打印,乘法口诀表
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //用for 循环打印 乘法口诀表 for(int i=1; i<=9; i++){ for (int j=1 ; j <=i ; j++){ printf(" %d * %d = %d", i , j , i*j); } printf(" "); } } return 0; }
获得结果如下:
五 补充知识
1 Foundation框架的位置:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Libray/Frameworks/Foundation.framework/Headers
编译部分参考: http://www.cnblogs.com/mjios/archive/2013/05/06/3062576.html