美文网首页iOS开发将来跳槽用
#import 跟#include、@class有什么区别?#i

#import 跟#include、@class有什么区别?#i

作者: iOS_Alex | 来源:发表于2016-08-08 14:02 被阅读126次

(1)#import指令是Object-C针对@include的改进版本,能确保引用的文件只会被引用一次,不会陷入递归包含的问题中;

(2)@import与@class的区别:

#import会链入该头文件的全部信息,包括实体变量和方法等;二@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类如何定义的,暂时不用考虑。在头文件中,一般只需要知道被引用的类的名称就可以了,不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称;而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import类包含这个被引用类的头文件。

@class还可以解决循环包含的问题

(3)#import<>跟#import""的区别:

#import<>用来包含系统自带的文件,#import""用来包含自定义的文件

(4)属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?

•readwrite:是可读可写特性,同时生成get方法和set方法的声明和实现(补充:默认属性,将生成不带额外参数的getter和setter方法(setterff只有一个参数))

• readonly:只读特性,只会生成get方法的声明和实现;不希望属性在类外改变

• assign:是赋值特性,set方法的实现是直接赋值,用于基本数据类型;仅设置变量时

• retain:表示持有特性,set方法将传入参数先保留,再赋值,传入参数的retaincount会+1;

• copy:表示拷贝特性,set方法的实现是release旧值,copy新值,用于NSString、block等类型(set方法将传入的对象复制一份;需要完全一份新的变量时使用);

• nonatomic:非原子操作,决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic

相关文章

  • #import和#include,@class的区别

    #import和#include有什么区别,@class,#import<>跟#import" "有什么区别? i...

  • iOS-题总结-1

    #import 跟#include、@class有什么区别?#import<> 跟 #import""又什么区别?...

  • iOS (持续更新)

    1、#import 跟 #include 有什么区别,@class呢,#import<> 跟 #import"" ...

  • iOS笔试题

    1.#import跟#include、@class有什么区别?#import<>跟#import”"又什么区别? ...

  • iOS一些经典面试题

    1.#import跟#include、@class有什么区别?#import<>跟#import”"又什么区别? ...

  • 1:#import和#include有什么区别,@class,#

    1:#import和#include有什么区别,@class,#import<>跟#import" "有什么区别?...

  • ios 面试

    #import跟 #include 有什么区别,@class呢,#import<> 跟 #import””有什么区...

  • 2019年iOS面试题

    1、#import跟 #include 有什么区别,@class呢,#import<> 跟 #import””有什...

  • iOS面试题汇总

    1、1.#import跟#include、@class有什么区别?#import<>跟#import”"又什么区别...

  • iOS面试题总结

    1、#import跟 #include 有什么区别?@class有什么作用?#import<> 跟 #import...

网友评论

    本文标题:#import 跟#include、@class有什么区别?#i

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