OC语法基础
来源:互联网 发布:友价源码 编辑:程序博客网 时间:2024/05/20 18:42
1.#import的用途
相当于#include 导入头文件 也有两种查找方式< ... > 和" ... "
导入该头文件是因为在程序结尾处用到的其他类和函数的有关信息
跟#include一样,拷贝文件的内容
可以自动防止文件的内容被重复拷贝
#import<Foundation/NSObjCRuntime.h>
NSObjCRuntime.h中有NSLog函数的声明
2.Foundation框架头文件的路径
右击Xcode.app --> 显示包内容
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/Foundation.framework
主头文件
最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件
Foundation框架的主头文件名称就是Foundation.h
只需要包含Foundation框架主头文件,就可以使用整个框架的东西
运行过程
编写OC源文件:.m、.c
编译:cc -c xxx.m xxx.c
链接:cc xxx.o xxx.o -framework Foundation(只有用到了Foundation框架才需要加上-framework Foundation)
运行:./a.out
扩展名
.h
头文件。头文件包涵类的定义、类型、方法以及常量的声明
.m
源文件。这个典型的扩展名用来定义源文件,可以同时包含C和Objective-C的代码。
3.@符号
@符号是OC在C基础上新加的特性之一。
常见形式
@”字符串”,%@ , @interface,@implement等。@”字符串”表示引用的字符串应该作为Cocoa的NSString元素来处理。@interface等则是对于C的扩展,是OC面向对象特性的体现。
注:这里提一个小技巧,只要看到@符号,就可以认为它是对于C的一个扩展。
命名规则
以字母或下划线开头,之后可以是任何字母,下划线或者0~9 数字组合。
命名约定:
类名以大写字母开头,实例变量以下划线开头、对象以及方法的名称以小写字母开始。
每次创建新对象时,将同时创建一组新的实例变量且唯一。
4.NSLog()
引入foundation框架后,在OC中用的打印函数是NSLog(),不过引入stdio.h头文件后,也可以用printf(),但是NSLog()提供了一些特性,如时间戳,日期戳和自动加换行符等,用起来更方便,所以推荐使用NSLog()。
使用NSLog()输出任意对象的值时,都会使用%@格式说明。但是如果不是字符串对象时,默认输出的是类名和对象地址。
在使用这个说明符时,对象通过一个名为description的方法提供自己的NSLog()格式。可以通过重写description方法,来改变输出内容。
注:NS前缀告诉你函数来自Cocoa而不是其他工具包。
5.与 C 语言兼容的地方
预处理
#define 语句和 c 一样
#运算符
#define str(x) #x 表示在调用该宏时,预处理程序根据宏参数创建C 风格的常量字符串。
例如:str("hello")将产生"\"hello"\"
##运算符
表示用于把两个标记连在一起
#import 语句相当于#include 语句,但是 #import 可自动防止同一个文件被导入多次。
#条件编译语句(#ifdef 、#endif、 #else 、 #ifndef)和 C 一样 #undef 语句 消除特定名称的定义 其他基本的C 语言特性
数组、函数、指针、结构、联合的用法和C 一样。
Compound Literal 是包含在括号之内的类型名称,之后是一个初始化列表。
例如:如果 intPtr 为 int * 类型: intPtr = (int[100]){[0] = 1, [50] = 50, [99] = 99};
如果数组大小没有说明,则有初始化列表确定。
其他
如循环语句 (do while、while、for)、条件语句(if 语句(if-else、复合判断条件等) 、switch 语句)、 Boolean(YES NO)、条件运算符、goto 语句、空语句、逗号表达式、sizeof 运算符、命令行参数、位操作都 和 C 一样。
6.个人小结
学习任何一门编程语言都要从其基本语法开始学起,对于学习过C语言基础的人来讲,学习OC的相对其它编程语言更容易上手,因为它和C语言的联系十分紧密,它的使用很多都是封装了C语言的用法,但也正因为此,OC中面向对象的概念相对其它语言来讲就并不十分清晰明了,初学者很容易将C语言的面向过程和OC的面向对象混为一谈。想要真正理解OC的面向对象,就一定要在运用中去领会,在处理问题的过程中去深化理解。
- OC基础语法知识
- OC语法基础
- OC基础语法
- oc基础语法
- OC-1-基础语法
- oc基础语法小结
- OC基础语法
- OC语法基础之一
- OC基础语法
- OC语言--基础语法
- OC语法基础(2)
- OC语法基础(3)
- OC语法基础(4)
- oc基础语法
- OC 基础:基本语法
- OC基础第一章:OC基础语法
- OC基础DAY01 - OC基础语法
- OC基础DAY02 - OC基础语法
- 地图服务器Geoserver
- 演示求解中学数学题(Mathematica)
- 【二叉树】利用树结点本身指针域遍历二叉树
- C++中的单例模式
- (转)Spring应用初始化流程
- OC语法基础
- 用VC控制系统音量
- 整数对象
- POJ 2607 Fire Station
- 小生活,大智慧
- 【Unity3D自学记录】可视化对比十多种排序算法(C#版)
- NBUT 1585 字符串大处理
- List
- VC++设置与取得系统音量