【问题标题】:When subclassing NSObject, what difference does it make to import "Foundation.h" or "NSObject.h"?子类化 NSObject 时,导入“Foundation.h”或“NSObject.h”有什么区别?
【发布时间】:2015-03-16 04:40:20
【问题描述】:

在这里,我们看到NSObject 的相同子类,每个子类都使用不同的#import 语句。这对我的子类有什么不同(如果有的话)?这对我最终编译的程序有什么影响(如果有的话)?

#import <Foundation/NSObject.h>
    @interface Card : NSObject

#import <Foundation/Foundation.h>
    @interface Card : NSObject

【问题讨论】:

  • 投反对票有什么问题?
  • 我没有投反对票,但可能英语很差。我认为这个问题没有其他问题。 -- 试图清理它以避免进一步的downvoting.. GL

标签: ios objective-c xcode nsobject foundation


【解决方案1】:
#import <Foundation/NSObject.h>
    @interface Card : NSObject

在这段代码中,你只是导入了Foundation框架的NSObject类,所以你不能继承Foundation框架的其他类。

虽然

#import <Foundation/Foundation.h>
  @interface Card : NSObject

此代码允许您在导入整个框架时继承框架提供的任何类,例如NSProxyNSRange 等。

希望对您有所帮助....:)

【讨论】:

    【解决方案2】:

    区别很简单。

    使用时:

    #import <Foundation/NSObject.h>
    

    它只会导入Foundation框架的NSObject头文件。

    #import <Foundation/Foundation.h>
    

    所有框架都有一个主头文件,其中包括该特定框架的所有公共头文件。通常这个主头文件命名约定类似于 FrameworkName.h ,因此对于 Foundation 框架,它将是 Foundation.h 并且它导入 Foundation 框架的所有其他公共头文件。因此,如果您包含它,则无需从该框架导入任何其他类头。

    【讨论】:

      猜你喜欢
      • 2013-10-21
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 2010-12-05
      • 2018-06-23
      • 2020-08-10
      • 2011-08-30
      • 2016-08-08
      相关资源
      最近更新 更多