下面提到的 `#import` 指令有啥问题?
Posted
技术标签:
【中文标题】下面提到的 `#import` 指令有啥问题?【英文标题】:What is the problem with the `#import` directive mentioned below?下面提到的 `#import` 指令有什么问题? 【发布时间】:2020-04-24 18:19:30 【问题描述】:Here你会发现以下语句:
#import
不是一个设计良好的功能。它要求用户 头文件知道它应该只包含一次。
这有什么问题?
【问题讨论】:
这是一篇有偏见的文章,给出出处也就不足为奇了。#import
是在很久以前为 NeXTSTEP 设计的,从未打算在 Objective-C 之外移植。
【参考方案1】:
这篇文章非常准确地说明了这个问题:如果您编写一个标头的目的是与 #import 一起使用(也就是没有任何包含防护/等),那么您期望该用户头文件使用#import 或其他方式来确保该文件只包含一次。如果用户不知道这一点,或者如果标头与不支持#import 的编译器一起使用(或使用该命令执行其他操作),那么您的标头将无法正常工作。而且,特别是在有很多人参与的大型项目中,很有可能有一天有人会不小心 #include 那个头文件,或者该项目在未来某个时候被移植到不同的编译器。
【讨论】:
以上是关于下面提到的 `#import` 指令有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章
在引用Angular指令之前放置`data-`有啥好处[重复]