Object C学习笔记24-关键字总结

简介:   学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法。   1.  #import     #import 从system目录中查找头文件,不会检查当前目录。

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

   

        

    

相关文章
|
5月前
|
SQL 安全 Java
Android经典面试题之Kotlin中object关键字实现的是什么类型的单例模式?原理是什么?怎么实现双重检验锁单例模式?
Kotlin 单例模式概览 在 Kotlin 中,`object` 关键字轻松实现单例,提供线程安全的“饿汉式”单例。例如: 要延迟初始化,可使用 `companion object` 和 `lazy` 委托: 对于参数化的线程安全单例,结合 `@Volatile` 和 `synchronized`
65 6
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用1
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用1
51 0
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用1
|
Kotlin
Kotlin中继承、类型转换、Any超类、object关键字详解
Kotlin中继承、类型转换、Any超类、object关键字详解
164 0
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用2
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用2
47 0
|
前端开发
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置1
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置1
45 0
|
前端开发
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置3
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置3
50 0
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用4深度拷贝
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用4深度拷贝
39 0
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用3
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用3
38 0
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的注意细节
前端学习笔记202306学习笔记第四十天-Es6-object.assign的注意细节
44 0
|
前端开发
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置4
前端学习笔记202306学习笔记第四十一天-Es6-object.defineProperty监听属性的访问和设置4
42 0
下一篇
无影云桌面