黑马程序员---OC基础知识①

来源:互联网 发布:你见过最恐怖的事 知乎 编辑:程序博客网 时间:2024/06/14 11:12

1.文件的扩展名为什么是.m?

    Objective-C刚诞生的时候,扩展名.m代表message,指的是Objective-C的一个主要特性。因为oc是一种不同于c语言(面向过程)的面向对象语言,类或对象的方法都是以消息的形式传递,而不是简单地函数,因此在Objective-C这门语言中处处有传递消息的代码(其实 就是在调用类方法),所以OC源文件以.m为扩展名

2.基本数据类型中增加了BOOL类型

   BOOL类型是一种取值只有真和假的数据类型,在其他语言中非常常见,Objective-C为了弥补C语言中缺乏的bool类型,使用C语言中得typedefine关键字定义了一种新的BOOL类型:typedef signed char BOOL;  

并且定义了两种取值

  #define YES      ((BOOL)1)  

#define NO       ((BOOL)0) 

3.nil类型

   Objective-C中的nil类型相当于在C语言中的NULL类型,在Xcode中按住command键进入.h头文件可以看到对nil类型的宏定义

 

4.#import预处理命令

    作用跟#include一样,用来拷贝某个文件的内容,但是为什么不用#include而使用新增的#import。

因为在OC中的#import指令有更加丰富的功能

#import是GCC编译器提供的Xcode在编译Objective-C、C和C++程序时都会使用它,#import可保证头文件只包含一次,而不论此命令实际上在那个文件中出现了多少次。

#import可以自动防止文件内容被拷贝多次,也就以为着头文件中不用像编写C语言程序时加入下面的繁琐的预处理指令了

5.OC中的关键字和字符串类型

在OC语言大部分关键字都以@开头

OC语言中的字符串不同于C语言中得字符串,它不是简单的字符数组,而是以@开头的包装类型(类类型)

比如@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串

 

 

 

 

6..基本输出函数NSLog

Objective-C中有比C语言中更高级的输出函数NSLog主要的区别如下

Ø   NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数

Ø   NSLog输出后会自动换行,printf输出后不会自动换行

Ø   使用NSLog需要#import <Foundation/Foundation.h>

Ø   使用printf需要#include<stdio.h>



7.Foudation框架

    在OC语言中,使用的类、结构体、和函数被定义在.h文件中(而实现则放在了.m文件中),一些公司或者个人开发了一些具有特定功能的框架(framework),里面有许多.h和.m文件,而要使用这些框架或者框架中得某些函数、类或结构体必须使用#import关键字引入包含他们的头文件,而以框架名命名的主头文件包含了这个框架中所有的函数、类和结构体的声明(在不知道要具体添加哪个头文件时,通常添加主头文件即可),例如

#import<Foundation/Foundation.h>

意味着要添加Foundation框架下的Foundation.h文件其中框架名和头文件以"/"隔开。

几乎所有的OC程序都要添加Foundation框架,因为

Ø   Foundation开发OC、iOS、Mac程序必备的框架

Ø   此框架中包含了很多常用的API(应用编程接口)

 

8.如何编译和链接OC文件

如同前面的C语言编程,要想让oc程序运行起来,也要三步走,即:编译->链接->执行。但是和C语言稍微有点不同

就是在链接阶段 需要添加OC程序中使用的框架(指明–framework参数),例如:

Ø   编译:cc –cmain.mtest.m

Ø   链接:ccmain.otest.o –framework Foundation

Ø   运行:./a.out

0 0
原创粉丝点击