初次接触ObjC时,会发现许多和其它语言不同的地方,会看到很多的+,- ,[ ,] ,@, NS等符号,这些符号在以后的编程中将经常看到,这部分内容在第二节中介绍。先熟悉一下ObjC的代码:

#import "ClassA.h"
#import <stdio.h>

int main( int argc, const char *argv[] ) {
    ClassA *c1 = [[ClassA alloc] init];
    ClassA *c2 = [[ClassA alloc] init];

    // print count
    printf( "ClassA count: %i\n", [ClassA initCount] );
    
    ClassA *c3 = [[ClassA alloc] init];

    // print count again
    printf( "ClassA count: %i\n", [ClassA initCount] );

    [c1 release];
    [c2 release];
    [c3 release];
    
    return 0;
}

除了这些语言要素上的不同,ObjC也提供了一些很好的特性,如类别,扮演(Posing)等,这些在运行时的特性使得编程更加灵活。

OC的优缺点:

  优点: 类别、扮演(Posing)、动态类型、指针计算、弹性信息传递、不是一个过度复杂的c衍生语言、可通过 Objective-c++与c++结合

缺点: 没有命名空间、没有操作符重载、不像c++那样复杂

ObjC是ANSI版本C的一个超集,它支持相同的C语言基本语法。与C一样,文件分为头文件和源文件,扩展名分别为.h和.m。如果要加入c++的语法,需要用到.mm,这里不做介绍。

.h

头文件。头文件包涵类的定义、类型、方法以及常量的声明

.m

源文件。这个典型的扩展名用来定义源文件,可以同时包含C和Objective-C的代码。

#import

在ObjC里,包含头文件有比#include更好的方法#import。它的使用和#include 相同,并且可以保证你的程序只包含相同的头文件一次。相当于#include + #pragma once的组合。

例如要包含Foundation框架中的Foundation.h文件,可以像下面这样。

#import<Foundation/Foundation.h>

注:每个框架有一个主的头文件,只要包含了这个文件,框架中的所有特性都可以被使用。

@符号

@符号是ObjC在C基础上新加的特性之一。常见到的形式有@”字符串”, %@ , @interface, @implement等。@”字符串”表示引用的字符串应该作为Cocoa的NSString元素来处理。@interface等则是对于C的扩展,是ObjC面向对象特性的体现。

注:这里提一个小技巧,只要看到@符号,就可以认为它是对于C的一个扩展。

NSLog()

在ObjC中用的打印函数是NSLog(),因为ObjC是加了一点”特殊语料”的C语言,所以也可以用printf()但是NSLog()提供了一些特性,如时间戳,日期戳和自动加换行符等,用起来更方便,所以推荐使用NSLog()。下面是两种输出的对比。

使用NSLog()输出任意对象的值时,都会使用%@格式说明。在使用这个说明符时,对象通过一个名为description的方法提供自己的NSLog()格式。

下面分别是使用NSLog()和使用printf()的相应输出:

2010-10-15 14:54:21。426 10_15[1973:207] Hello World!

Hello World!

注:NS前缀告诉你函数来自Cocoa而不是其他工具包。

BOOL

BOOL是ObjC中的布尔类型,它和C中的bool有如下区别

BOOL

YES(1),NO(0)

bool

true(!0),false(0)

id

这是ObjC新加的一个数据类型,它是一般的对象类型,能够存储任何类型的方法。

nil

在ObjC中,相对于C中的NULL,用的是nil。这两者是等价的。下面是nil的定义。

#define nil NULL

优质内容筛选与推荐>>
1、20145317彭垚 《Java程序设计》第6周学习总结
2、pandas(二)
3、余弦相似度
4、【转】Win32 创建控件风格不是Win XP解决方案
5、课题的跨专业组队


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号