Objective-C基础语法
首先我们先来看看一个示例程序
#import <Foundation/Foundation.h>
@interface SampleClass:NSObject
- (void)sampleMethod;
@end
@implementation SampleClass
- (void)sampleMethod {
NSLog(@"Hello, World! \n");
}
@end
int main() {
/* my first program in Objective-C */
SampleClass *sampleClass = [[SampleClass alloc]init];
[sampleClass sampleMethod];
return 0;
}
该示例程序通过继承NSObject这个所有对象的基类,并通过构建一个名为“sampleMethod”的方法,实现了基本的“Hello, World!”的打印。其中NSLog类似于C语言中的printf,是一个用于打印的函数,在程序的注释方面,Object-C继承了C语言经典的代码注释的方式,使用“/……/”表示注释,使用 // 亦可。
变量的声明
变量的声明和C语言中有关变量的声明类似,(变量类型)(变量名)=(变量的值)。变量最基本的形式是标量,标量是一次只能存储一个值的变量。整数、浮点数和字符都是标量。标量有不同的预定义内存空间和可以存储的值得大小。在决定使用什么类型定义变量之前应该知道这些类型的限制。
Object-C中的空值:nil、Nil、NULL、NSNull。在Object-c的变量定义中会经常使用到NULL这个赋值手段,相对于其他语言,Object-C中所使用到的空指针亦或是空值会较为复杂,有nil、Nil、NULL和NSNull多种定义的方式。接下来来看看这几种定义方式的区别之处在哪:
nil:指向OC中对象的空指针;
Nil:指向OC中类的空指针;
NULL:指向变量类型的空指针;
NSNull:在集合对象中,表示空值的对象;
Sunmary:
nil是一个对象的值,而NULL是一个值。
文件拓展名
拓展名 | 内容类型 |
---|---|
.h头文件 | 头文件包含类,类型,函数和常量的声明; |
.m源文件文件 | 这是典型的源代码文件拓展名,可以包含Object-C和C代码; |
.mm | 源代码文件 |
文件的引用
在Object-C中提供了两种包含头文件的方法,方法一:使用#include选项;方法二:使用#import选项,使用这些选项可以确保相同的文件只会被包含一次,在Object-C中更倾向于使用#import来进行文件的引入。在C语言中我们使用#ifdef命令的方案来规避一个文件的重复包含,在object-c中使用#import命令来实现。该命令可以保障头文件只被包含一次,无论次命令在该文件中出现多少次。
数据类型-布尔类型(BOOL)
C语言拥有布尔数据类型bool,它具有TRUE 和FLASE 两个值,object-c也提供了一个相似类型BOOL,它具有YES 和NO两个值。Object-c中的bool实际上是一种对带符号的字符类型(signed char)的类型定义(typedef),它使用8位的储存空间。通过#define指令把YES定义为1, NO定义为0。Object-c并不会将BOOL作为仅能保存YES 和NO值得真正布尔类型来进行处理。编译器仍将BOOL认作为8位二进制数,YES 和NO值只是一种习惯性的一种理解,如:如果不小心将一个大于1字节的整形值(比如short or int)赋值给一个BOOL类型的变量,那么只有低位字节会用做BOOL值。如果该低位字节刚好为0(比如说8960, 写成十六进制为0x2300),则BOOL值将会被认作是0,即NO值。
字符打印函数与NSLog()
在使用C等语言进行编程之时,我们最为熟悉的应当就是 printf() 函数了,在进行第一次代码编写时肯定少不了 printf(“Hello world!”) 。在Objective-C中NSLog函数的作用和printf的作用相似。如标题所言,Objective-C是对于C有一些新特性的拓展,printf() 函数还是能够继续使用的,不过既然是增加了新的特性,那肯定有些是你没见过的船新版本,NSLog() 函数拥有时间戳、日期戳、自动附加换行符(‘\n’)等新的特性。
object-c中的“[]”的使用
对象的引用:Object-c中的方括号用于通知某个对象该去做什么。方括号中第一项是对象,其余部分是需要对象执行的操作。在object-c中。通知对象执行某种操作称为发送消息(有些人也称之为“调用方法”)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117002.html