zoukankan      html  css  js  c++  java
  • Object C学习笔记24-关键字总结(转)

    学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法。

      1.  #import

        #import <> 从system目录中查找头文件,不会检查当前目录。

        #import "" 首先在当前目录中查找,如果未找到,则在Xcode设置的预处理程序搜索路径中查找文件。

        #import 指令可以防止头文件被重复包含

      2. typedef

        用于给一个类型定义新名称 或 简化较为复杂的类型声明,可以参考文章<Object C 学习笔记--typedef用法>

      3. #define

        用于宏定义预处理,可以参考文章<Object C学习笔记22-#define 用法>

      4. 定义类

        *.h 用于定义类的头文件

        @interface 类 : 父类

        @end

        *.m Object C中的类文件

        @implementation 类

        @end

      5. 类方法定义

        -(返回值类型) 函数名: (类型) value 参数名: (类型) value …. 

        -(int) speak:(int) a andName:(NSString*) address;

        必须使用类的实例来调用

      6.全局方法定义

        +(返回值类型) 函数名: (类型) value 参数名: (类型) value ….

        +(int) speak:(int) a andName:(NSString*) address;

        直接使用类调用,不需要实例,相当于静态方法,和类方法不同之处在于 "+" 和 "-" 的区别

       7. super

        用于子类调用父类方法,在重载的时候用的比较多

       8.@selector 

        获取方法的编号,相当于获取函数指针,SEL sel1=@selector(eat);

       9. @class

        @class 来告诉编译器这是一个类,编译器只需要通过指针来引用它即可,并不需要知道关于这个类的更多信息,可以用来减少编译。

      10.@protocol 

        用于定义一个协议,相当于.NET中的接口interface

      11.@property

        用于定义类属性,比如 @property (nonatomic,retain) NSString *name;  相当于实现get和set方法,写在类的*.h文件中

      12.@synthesize

        用于实现在头文件中描述实现的类属性,一般和 @property 同时使用; 例如: @synthesize name; 这个写在类的*.m文件中

      13. id

        id是保存“指向对象的指针”的类型。声明为 id 的变量,可以保存指向任何Objective-C对象的一个指针

      14. retain

        通知编译器向分配给此属性的对象发送一个保留消息,这将确保属性底层的实例变量在使用过程中不会从内存中消失。释放旧对象,将就对象的值赋予新对象,在增加新对象的索引计数1 (在@property中使用)

      15. nonatomic

        不给set方法加锁,在多线程访问的时候会出现并发问题 (在@property中使用)

      16. assign

        简单的赋值,不更改索引的计数(在@property中使用)

      17. copy

        建立一个索引计数为1的对象,然后释放旧对象(在@property中使用)

      18.readonly

        将只生成get方法而不生成set方法(在@property中使用)

      19.readwrite

        默认属性,将生成不带额外参数的get和set方法(在@property中使用)

      20.atomic

        相当于set方法加锁,当多线程访问的时候,只有当一个线程访问结束之后另外一个线程才能执行(在@property中使用)

  • 相关阅读:
    80x86的保护模式
    计算机二进制的表示
    操作系统基本知识(一)
    记录一次在安装双系统的过程(先有debian, 后加windows 8.1)
    LitePal + Gson + Volley的ORM框架尝试方案
    如何使用DDMS Heap查看Android应用内存情况
    测试驱动开发的第一个例子---我的毕业设计
    策略模式的孪生兄弟---状态模式
    面试常备---栈和队列总结篇
    面试常备题---二叉树总结篇
  • 原文地址:https://www.cnblogs.com/jiuyi/p/10095327.html
Copyright © 2011-2022 走看看