------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -----
第一讲 OC语言快速入门之“helloworld”
//c中的引入头文件的方式
//#include <stdio.h>
//这是c的引入方式
//#include<Foundation/Foundation.h>
#import <Foundation/Foundatin.h> //引入头文件
//1.为什么要使用import,import和include的区别
//include和import 都是引入头文件
//import引入的头文件,可以防止重复包含
//include 它是使用预处理指令防止重复包含,如果没有写预处理指令,则无法防止重复包含问题
//2.import 和 @class 的区别
//3. Foundation/Foundation.h 是什么东西
// 1)头文件
// 2)头文件的位置
// 3)文件包含了其他的大量的头文件
// 作用: 把Foundation.h引入了,等于把OC的库文件都引过来了
int main(int argc,const char *argv[]){
//自动释放池,用于回收对象的储存空间
@autoreleasepool{
//是一个函数
//作用:向控制台输出字符串
NSLog(@"Hello,World!");
}
return 0;
}
注意:
1.在c和c++中采用#include指令,在本例中也可以采用#include,而#import 是 #include改进指令,它可以防止头文件重复包含问题。
2.int main (int argc ,const char *argv[]) ,这个方法是程序的入口。参数argc-参数数目,argv-参数值。
3.@autoreleasepool { }这是一个自动释放池,用于回收对象的储存空间
4.NSLog 是Foundation框架提供的Objective-C日志输出函数,与标准C中的printf函数类似,并可以格式化输出。
5.最后是return 0语句,它表示要终止main的执行,一般情况下0代表正常结束,非0代表异常情况这是沿用了C语言的习惯。
第二讲 NSLog函数使用方法
本小节知识点:
1、【了解】NSLog的介绍
2、【掌握】NSlog使用方法
3、【了解】NS前缀的含义
1.NSLog的介绍
2.使用方法
#import <Foundation/Foundation.h>
int main(){
@autoreleasepool{
//NSLog和printf使用的差异
//1.NSLog 会自动换行 而printf不会自动换行
//2.NSLog 会自动输出时间等项目信息,printf不会输出调试信息
//3.NSLog 函数的参数是一个NSString 对象,printf是一个字符串常量指针
NSLog(@"Hello, World!");
printf("Hello, World!");
}
//2、NSLog 格式化输出的问题
int a= 5;
float f1 = 2.3f;
double d1 = 3.14;
char ch = ‘X‘;
char *str = "张三丰";
//如果能够运行,说明OC向下兼容C
printf("%d,%.2f,%.2f,%c\n",a,f1,d1,ch);
printf("%s\n",str);
//NSLog格式化输出
NSLog(@"%d,%.2f,%.2f,%c\n",a,f1,d1,ch);
NSLog(@"--->%s",str);
//不能这么写
//OC中自己特有的字符串表示方法
//用%@输出字符串
NSString *str1 = @"张三丰";
NSLog(@"%@",str1);
//使用printf能够打印str1?
//不能,NSString 是OC特有的,C不支持
printf("===>%@\n",str1);
return 0;
}
3.NS前缀
NS来自NeXTStep的一个软件 NeXT Software
第三讲 OC中@符号的使用方法
“@”的使用方法
1)@“” 这个符号表示将一个c的字符串转化为OC中的字符串对象NSString
2)@符号 OC中大部分的关键字都是以@开头的,比如 @interface ,@implementation , @end,@class 等
第四讲 OC和C差异学习
本小节知识点:
1、【了解】源文件对比
2、【了解】基本语法对比
1、源文件对比
思考&实现1:
1)在C语言中,我们遇到不同后缀的文件有哪些?
.c .o .out .h
c语言的源文件 目标文件 可执行文件 头文件
2)OC里面
.h 头文件
.c C语言源文件
.cpp.cc c++语言的源文件
.m Objective-C的源文件
.mm Objective-C++的源文件
常见的有两种:
.h 头文件,头文件包含方法,属性的声明。
.m 类的实现文件,参与编译的文件,用来实现类中声明的方法。
2、基本语法对比
1)数据类型对比学习
C中常用的数据类型
短整型short
整型 整型int
长整型long
基本类型 字符型char
单精度float
实型
双精度double
数据类型
数组
构造类型 结构体struct
共用型union
枚举类enum
指针类型
空类型void
定义类型typedef
OC中的数据类型
数值型 整型类型
浮点型
基本数据类型 字符型(char)
布尔型(BOOL)
空类型(void)
OC数据类型
Block类型
类(class)
指针数据类型
id类型
特殊类型(SEL、nil)
注意:
1.C语言的关键字都可以在OC源程序中使用
2.OC新增的关键字在使用时,注意部分关键字以“@”开头
3、OC和C对比
/*
OC 和 C 对比学习
1) 文件的差异
2) 数据类型差异
3) 关键字差异
4) 流程控制语句
OC中并没有增加新的流程控制
OC中提供一种增强型的for循环
NSArray *arr = @[@"one",@"two",@"three"];
//OC中的增强型for循环
for (NSString *str in arr){
NSLog (@"%@",str);
}
5) OC中函数的定义和声明的差异
C语言中的函数
int max(int x,int y);
int max(int x,int y){
return x>y?x:y;
}
OC中把函数称之为方法
+(void) test;
-(void) test;
-(int)max:(int)x andY:(int) y;
1.方法申明:
-(int)sum:(int) a and:(int) b;
2.方法定义
-(int)sum:(int) a and:(int)b{
return a+b;
}
*/
第四讲 OC新增的数据类型介绍以及新增异常捕捉方法
1、OC新增的数据类型介绍
BOOL id class block SEL nil
1)逻辑型
(1)Boolean
(2)BOOL 也是做逻辑判断
/*
1.新增的数据类型介绍
Boolean(布林)
作用: 用来存放逻辑值 (1.真(非0) 2.假(0))
用来做判断
储存的值: true(真) 1 false(假) 0
OC中也可以使用true 表示真 false表示假
用来存放true 和false的结果的变量一般我们声明为 Boolean
Boolean flag = true;
if(flag){
NSLog(@"真 %d",flag);
}else{
NSLog(@"假 %d",flag);
}
BOOL
作用: 也是用来保存逻辑值
取值: YES(真) NO(假)
BOOL flag2 = YES;
if(flag2){
NSLog(@"BOOL YES 真 %d",flag2);
}else{
NSLog(@"BOOL NO 假 %d",flag2);
}
2.异常捕捉机制
异常:程序运行时候有bug
捕捉机制:排除错误
@try{
//如果有异常
//1/0
}
@catch(NSException *exception){
//捕捉最具体的异常类型
}
@catch(NSException *ne){
// 捕捉比较重要的异常类型
}
@finally{
}
*/
#import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
@autoreleasepool{
//1. Boolean 类型的使用
Boolean flag = true;
//false 假 0
flag = false;
//true 真 1
printf("flag= %d\n",flag);
//用Boolean类型的变量经常用于条件判断
if(flag){
printf("xxxxxx\n");
}
//2.存放逻辑值的另外一种方法
//BOOL 它的取值 YES 和 NO
//YES 真 1
// NO 假 0
BOOL flag2 = YES;
printf("YES = %d\n",YES);
printf("flag2 = %d\n",flag2); // 1
//flag2 = 0;
if(flag2){
printf("000000\n");
}
// 1/0 错误的 不能
int a =1;
int b=1;
b = NO;
//注意;try catch 并不能检测所有的错误
@try{
//此处放的是有可能出错的代码
int result = a/b; //这个错误捕捉不了
}
@catch (NSException *exception){
//此处放出错以后 我们处理的代码
}
@finally {
//不管有没有出错,这里的代码一定会执行
printf("fengjie!\n");
}
}
return 0;
}
原文:http://www.cnblogs.com/xiaokang520/p/5062336.html