• 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中使用)

       

            

        

  • 相关阅读:
    Could't creat any visual c# project in visual studio 2008 beta 2
    最近有点时间赶紧学习,好久没有写东西了
    三亚 渡假 不多, 以后要多去去 芒果很好吃
    windows8. 微软要颠覆PC传统模式
    IM
    windows8 预览版本 安装 VC6 + sp6
    windows 8 截图部分
    分享一个常识 如果你也和VC 打交道
    有时间看看, 热爱技术,不沉迷于技术
    LIVE555 Media Server
  • 原文地址:https://www.cnblogs.com/qingyuan/p/3647704.html
Copyright © 2020-2023  润新知