黑马程序员——OC语言基本语法知识(四)

OC也叫面向对象c,在c语言的基础上增加了一层最小的面向对象语法
特点:

1、完全兼容C语言

2、可以在OC代码中混入C语言代码,甚至是C++代码,不是任何源文件代码都能写c++代码,要把拓展名改一改才可以写

3、可以在OC开发 Mac OS X平台和IOS平台的应用程序

4、.c只能写C语言代码,.m能写OC代码,也能写C语言代码,要写C++代码就要写.MM

OC语法预览

1.关键字

基本上所有关键字都是以@开头,少部分不是以@开头

2.字符串以@开头

比如@"HELLO"是OC字符串,"HELLO"是C语言字符串,用的最多的是OC字符串

3.其他语法

在C语言的基础上增加一个BOOL类型两个取值,一个是YES一个是NO
 
 C语言中:

p = NULL NULL就是0

OC中:

nil相当于C语言中的NULL,也就是0
 
 屏幕输出

NSlog(@"HELLO");
 
 编译: 把代码编译成0跟1

链接:是把项目中相关联的.o目标文件跟C语言函数库合并在一起生成可执行文件
 
 OC程序开发

1、 .m文件 ->.o文件->可执行文件

2、OC程序的入口也是main函数,跟C语言一样的

一、#import的用途

1> 跟#include一样,拷贝文件的内容

2> 可以自动防止文件的内容被重复拷贝

二、#import

NSObjCRuntime.h中有NSLog函数的声明

三、主头文件

1> 主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件

2> Foundation框架的主头文件名称就是Foundation.h

3> 只需要包含Foundation框架主头文件,就可以使用整个框架的东西

4> OC只能学Foundation框架,每一个框架有有字节的主头文件,最主要的文件,每个主头文件都跟名字一样

总结
一、运行过程
1> 编写OC源文件:.m、.c
2> 编译 cc-c xxx.m xxx.c
3> 链接 :cc xxx.o xxx.o -framework Foundation
(只有用到了Foundation框架才需要加上-framework Foundation)
4> 运行:./a.out
OC是完全兼容C语言的

二、BOOL完全可以看做是整型
1> 只能写大写
2> YES就是1,NO就是0

三、BOOL类型的本质
1、比如:typedef signed char BOOL;  BOOL 其实就是char
2、BOOL类型的变量值有两种取值:YES、NO输出用%d
3、(BOOL)1是强转,把BOOL类型转成了1
#define YES (BOOL)1 把代码中所有YES都换成了1
#define NO (BOOL)0把代码中的所有NO都换成了0
4、输出验证
NSLog(@"%d,%d",YES,NO);

时间: 2024-10-27 04:51:36

黑马程序员——OC语言基本语法知识(四)的相关文章

黑马程序员——OC语言基本语法知识(二)

一.基本使用 1.内存管理的范围:任何继承了NSObject的对象,对其他基本数据类型(int.char.float.double.struct.enum等)无效 2.对象的基本结构: *每个OC对象都有自己的引用计数器,是一个整数,表示“对象被引用的次数”,即有多少人正在使用这个OC对象 *每个OC对象内部专门有4个字节的存储空间来存储引用计数器 3.引用计数器的作用*当使用alloc.new或者copy创建一个新对象时,新对象的引用计数器默认就是1*当一个对象的引用计数器值为0时,对象占用的

黑马程序员——OC语言基本语法知识(五)

block :用来保存一段代码,用^ 1.block 特点:  1> Block封装了一段代码,可以在任何时候执行   2> Block可以作为函数或者函数的返回值,而其本身又可以带输入参数或返回值  3> 苹果官方建议尽量多用block,在多线程.异步任务.集合遍历.集合排序.动画转场用的很多  4> Block可以在程序运行时凭空产生一个代码保存起来 2.block的标志:^ 3.block跟函数很像  1> 可以保存代码  2> 有返回值  3> 有形参  

黑马程序员——OC语言基本语法知识foundation

1.结构体:NSRange .NSPoint(CGPoint). NSSize(CGSize). NSRect(CGRect) NSRange :表示范围,有两个成员变量:location ,length 例如:@“I love you”求出love的范围 int main() { NSRange r1= NsMakeRange{2,4}; return 0; } 例如:查找出某个字符串在str中的范围 NSString *str = @"I love you"; NSRanger r

黑马程序员——OC语言基本语法知识(一)

*** 封装 *** 一. set方法 通过 指针->成员变量名 方式给成员变量赋值具有危险性, 可能被赋值为不合理的数值.不允许通过指针直接修改成员变量, 就要去掉@public. 通过方法来修改成员变量的值, 方法中可以加代码保证接收的值是合理的赋值. 设置成员变量属性值的方法, 通常称为该属性的set方法, 命名方式为 setAge: , 接收一个相同类型的参数,形参的名称不能和成员变量名相同. 举例: - (void)setAge:(int)newAge { // 对传进来的参数值进行过

黑马程序员——OC语言基本语法知识(三)

*** 类方法 *** 声明和实现: @interface Person : NSObject + (void) age;  //声明一个类方法 @end @implementation Person + (void) age   //类方法的实现 { NSLog(@"abcd"); } @end int main() { [Person age];  //通过类名调用类方法 return 0; } 类方法比对象方法优化体现在不用创建对象就能执行行为. 在内存中, + 识别为类方法, 

黑马程序员——c语言基本语法知识(四)

一.外部函数 外部函数:如果在当前文件中定义的函数允许其他文件访问.调用,就称为外部函数.C语言规定,不允许有同名的外部函数 二.内部函数 内部函数:如果在当前文件中定义的函数不允许其他文件访问.调用,只能在内部使用,就称为内部函数.C语言规定不同的源文件可以有同名的内部函数,并且互不干扰. 三.static.extern与函数的总结 1.在定义函数时,在函数的最左边加上static可以把该函数声明为内部函数(又叫静态函数),这样该函数就只能在其定义所在的文件中使用.如果在不同的文件中有同名的内

黑马程序员——oc语言学习心得—— 属性声明和赋值

黑马程序员——oc语言学习心得—— 属性声明和赋值 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,在oc中所有类继承与终极父类Object2,声明字符变量采用N是string  *_xxx 实例变量一般以下划线开头3,在oc中方法以+ -号区分 -号开头是实例方法或对象方法  +号开头是类方法  前置用对象调用 后者用类名调用4,在xcode4以后声明@property 不用在写@snysize  自动生成get.set方法5,属性

黑马程序员—oc语言学习心得—block

黑马程序员—oc语言学习心得—block -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,程序一般用typedef定义一个block类型 然后调用 typedef void(^xxx)(); 可使用助记符 inlineblock 2,Block内部可以访问外部变量:默认情况下,Block内部不能修改外部的局部变量 给局部变量加上__block关键字,则这个局部变量可以在block内部进行修改. 3,block的作用: 利用block封

黑马程序员——oc语言学习心得----NSFileManager

黑马程序员——oc语言学习心得----NSFileManager -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 自己总结了下NSFileManager的简单几个用法 : // 首先要创建文件管理器 NSFileManager *fm=[NSFileManager defaultManager]; 1,判断文件是否存在 fileExistsAtPath: 2,判断文件是否是目录 fileExistsAtPath: 3, 判断文件是否可读