黑马程序员_ios基础总结7_OC简介

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

简单的OC程序

1.1OC简介

C语言的基础上,增加了一层最小的面向对象语法
完全兼容C语言
可以在OC代码中混入C语言代码,甚至是C++代码
可以使用OC开发Mac OS X平台和iOS平台的应用程序

1.2关键字

所谓的关键字是语法功能的保留字(reserved word) ,具有既定的用法,例如int与char为Objective-C的基本类型,return为函数(function)回传数值之用。

1.3Objective-C关键字

auto,BOOL, break, Class, case, bycopy, char, byref, const, id, continue, IMP, default, n,do, inout, double, nil, else, NO, enum, NULL, extern, oneway, float, out, for, Protocol, goto, SEL, if, self, inline, super, int, YES, long, @interface,register, @end, restrict,@implementation, return, @protocol, short, @class, signed, @public, sizeof, @protected, static,@private, struct, @property, switch, @try, typedef, @throw, union,@catch(),unsigned, @finally, void, @synthesize, volatile, @dynamic, while,@selector, _Bool, atomic, _Complex, nonatomic, _Imaginery, retain


1.4字符串以@开头

C语言字符串,也称为为C串
OC也有字符串以@开头

1.5OC程序的开发过程

.m源文件-->.o目标文件-->a.out可执行文件

1.6C代码编写

跟C语言一样,OC程序的入口依然是main函数,只不过写到一个.m文件中。比如这里写到一个main.m文件中(文件名可以是中文)

#include <stdio.h>
int main()
{
    printf("第1个OC程序\n");
    return 0;
}

1.7C终端指令

编译cc–c main.m
链接ccmain.o
运行./a.out

1.8OC代码编写

来点跟C语言不一样的,使用NSLog函数输出内容

#import <Foundation/Foundation.h>
int main()
{
    NSLog(@"第2个OC程序");
    return 0;
}


1.9OC终端指令

编译cc–c main.m
链接ccmain.o –framework Foundation
运行./a.out

1.10NSLog与printf的区别

NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
NSLog输出后会自动换行,printf输出后不会自动换行
使用NSLog需要#import<Foundation/Foundation.h>
使用printf需要#include<stdio.h> 

1.11#import的作用

跟#include一样,用来拷贝某个文件的内容
可以自动防止文件内容被拷贝多次,也就以为着头文件中不用加入下面的预处理指令了

1.12Foundation框架的作用

开发OC、iOS、Mac程序必备的框架
此框架中包含了很多常用的API(应用编程接口)
框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可


1.13BOOL的使用

•BOOL类型的本质  typedef signed char BOOL;

•BOOL类型的变量有2种取值:YES、NO

#define YES (BOOL)1
#define NO (BOOL)0

•BOOL的输出(当做整数来用)
NSLog(@"%d %d",YES,NO);



OC语法

lOC中没有类似Java中的包名这个概念,取而代之的是程序设计师必须给类名加上前缀,使用前缀可以有效的防止名称冲突。如NSString、NSArray(前缀都是NS)
l为了避免跟C、C++的关键字冲突,所有的OC关键字都以@开始,比如

  @interface,@implementation,@end

  @public、@protected、@private,@selector

  @try、@catch、@throw、@finally

  @protocol,@class

  OC2.0中引入的新关键字有

  @property,@synthesize

  @optional,@required,@dynamic


char、int、float、double、BOOLYES\NO

nil

相当于Java中的null

self

相当于Java中的this

基本语句

循环语句(do while、while、for)、条件语句(if 、if-else、switch)、goto语句

for循环快速遍历

for (xx in xx)

基类

NSObject

继承

单继承,用super关键字可以调用父类方法

基本数据类型

@try @catch @finally

注释

//  和  /*...*/

日志输出

NSLog(@”Hello”);  NSLog(@”age is %i”, 27);






框架

l所谓框架,就是一个集合,其中包含着头文件等资源文件
l每个框架中均有一个主头文件,该头文件包含了框架中各个头文件,一但引入了主头文件,就可以在自己的程序里使用任何在该框架里的类
l比如要使用Foundation框架,就导入它的主头文件即可:

   #import  <Foundation/Foundation.h>


Cocoa简介

lNextStep是一个用Objective-C编写的功能强大的工具包,里面有大量的类库,结构体等,被苹果收购之后,更名为Cocoa,但苹果并未更改NextStep中的类库名称,因此会有大量以NS为前缀的类名、结构体、枚举等
lCocoa里面的任何类都要继承自NSObject(只有这样,该类的对象才可以获得运行时的基本能力)
lCocoa包含两个核心框架:Foundation框架和Appkit框架,用于开发MacOS X平台的应用程序
lCocoa框架在iOS上叫做Cocoa Touch,包含两个核心框架:Foundation框架和UIKit框架,用于开发iOS平台的应用程序(iPhone\iPod\iPad)
lCocoa Touch与Cocoa一个比较鲜明的区别就是Cocoa Touch并不支持垃圾回收机制,这就意味着你必须在你的代码里管理好你的内存

常见拓展名

拓展名含义
.h头文件,用于描述类的组成,包括成员变量,成员方法,类方法类变量
.cc源文件
.cpp
.cc
c++源文件
.mOC源文件也叫实现类的类文件,可以包含OC和C代码,一个M对应一个H
.mm除了OC代码C代码还可以包含C++代码












---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页