ios开发(四):基本语法 Objects, Classes, and Messaging

来源:互联网 发布:react.js主要功能 编辑:程序博客网 时间:2024/04/28 23:55

这篇文章记录一下objective c的基本语法。

1) Objects, Classes, and Messaging

     id anObject;  id 可以表示任意的数据类型。

     nil: 表示任意的空对象。

typedef struct objc_object {

    Class isa;

} *id;

typedef struct objc_class *Class;

             isa是个指针,这个就实现了语法的动态绑定功能。

      message: 其实就是一些函数,在objective c中就叫message, 

[receiver message]

[myRectangle setOriginX: 30.0 y: 50.0];  //多参数例子

             其实objc也支持dot来实现变量的调用,这是一个语法糖。

      class

              int i = sizeof(Rectangle); 这个看起来很C的语法,在objc中就变成一个操作符号了。

if ( [anObject isMemberOfClass:someClass] ) 

if ( [anObject isKindOfClass:someClass] )

上面两个的区别是kindof的识别范围更广包括继承关系的class

instance的创建

id  myRectangle;
myRectangle = [Rectangle alloc];  alloc就是给class分配内存, 在objc中所有的对象都在heap上。

singlton

static MyClass *MCLSSharedInstance;
@implementation MyClass
+ (MyClass *)sharedInstance
{

    // check for existence of shared instance

   if (self == [ThisClass class]) {
      // Perform initialization here.
      ...
    }
    // create if necessary
    return MCLSSharedInstance;
}
// implementation continues





原创粉丝点击