美文网首页
@class的使用

@class的使用

作者: _叫我小贱 | 来源:发表于2016-06-20 21:18 被阅读26次

@class


  1. @class基本概念
  • 作用
    • 可以简单地引用一个类
  • 简单使用
    • @class 类名。告诉编译器有这个类的存在,并不会拷贝这个类的任何内容。
  • 具体使用
    • 在.h文件中使用@class引用一个类。
    • 在.m文件中使用#import包含这个类的.h文件。
    注意:如果都在.h中import,假如A拷贝了B,B拷贝了C,如过C被修改了,那么A和B都需要重新拷贝。因为C修改了B就会重新拷贝,而B重新拷贝之后相当于B也被修改了,那么A也需要重新拷贝。也就是说如果都在.h中拷贝,只要有间接关系都会重新拷贝;如过在.h中用了@class,在.m文件中用import,那么如过一个文件发生了变化,只有和这个文件有直接关系的那个文件才回重新拷贝,所以在.h中使用@class可以提升编译效率。
  1. @class解决相互拷贝问题
  • 对于循环依赖关系来说,A类引用B类,同时B类引用A类。这种嵌套包含代码会出现错误,
#import "B.h"
@interface A:NSObject
{
  B *_b;
}
@end
#import "A.h"
@interface B:NSObject
{
  A *_a;
}
@end
  • 当使用@class在两个类相互声明,就不会报错。
@class B
@interface A:NSObject
{
  B *_b;
}
@end
@class A
@interface B:NSObject
{
  A *_a;
}
@end
  1. @class和#import
  • 作用上的区别
    • #import会包含引用类的所有信息,包括引用类的变量和方法。
    • @class仅仅告诉编译器有这样的一个类,具体信息不知道。
  • 效率上的区别
    • @class的效率高于#import

相关文章

  • 属性操作

    特殊的属性操作,如class,for等 操作class: 操作class时不能直接使用class要使用classN...

  • @class 的含义

    1.@class的使用: @class 的使用格式: @class 类名; 2.@classs xxxx 含义...

  • @class的使用

    今天碰到一个问题,引入某个类的时候,老是提醒重复引用的问题,最后使用@class + 类名就解决了,这里讲@cla...

  • @class的使用

    @class @class基本概念 作用可以简单地引用一个类 简单使用@class 类名。告诉编译器有这个类的存在...

  • Class的使用

    任何一个类都是Class实例对象万事万物皆对象,类也是对象,是Class的实例对象 1.任何一个类都有一个隐含的静...

  • 2019-06-18 JS 中继承的写法

    使用 prototype 如何继承 使用 class 语法糖如何继承 ``` class Human{ ...

  • vue笔记-03(在vue中使用样式)

    使用class样式 :class数组,如::class="['red','word']"在数组中使用三元表达式,如...

  • 5. CSS选择器

    Class 和 Id 的使用场景 Class:一个标签可以有多个class且同一个class可以被多个标签共同使用...

  • div除了可以声明id来控制,还可以声明什么来控制

    除了使用id,还可以使用class来控制,id是唯一的,class可以重复使用。

  • jQ 写 css3 效果的一点注意事项

    尽量用 class 挂钩,而不是图个方便的使用 $(el).css({.....}) 使用 class 挂钩的好处...

网友评论

      本文标题:@class的使用

      本文链接:https://www.haomeiwen.com/subject/vqowdttx.html