【问题标题】:@interface, @implementaion sections. When to use vs not use? [closed]@interface,@implementaion 部分。何时使用 vs 不使用? [关闭]
【发布时间】:2013-07-18 15:23:22
【问题描述】:

所以,我是一个初学者,正在学习使用 Objective-C 编程。我了解@interface 和@implementation 部分的概念以及它们存在的原因。但是我正在使用的这本书将有其他示例直接指向@autoreleasepool,我发现从概念上更容易掌握。

我肯定错过了这两个部分(@interface 和@implementation)的一个关键概念。有人可以帮助我了解您何时需要使用这些部分来定义实例变量及其方法,而不是在 @autoreleasepool 下输入此信息吗?

我在这里没有理解什么?

非常感谢。

【问题讨论】:

    标签: objective-c interface implementation


    【解决方案1】:

    @interface 和 @implementation 与 @autoreleasepool 在完全不同的上下文中使用。您可能已经了解到,@interface 声明了一个类,而@implementation 显然包含所有方法的实现。 @autoreleasepool 用于封装代码块,并确保在此块中自动释放的任何对象都在 @autoreleasepool 块的末尾释放。您很少需要创建自己的 @autoreleasepool 块。在大多数情况下,已经为您创建了一个池。

    【讨论】:

    • 感谢您的回复。我在终端模式下使用 Xcode。对于很多练习,我一直放在接口、实现部分,然后放在 autoreleasepool 部分。然后运行程序。其他时候,我指示我只放入一个 autoreleasepool 部分并在其中定义变量。有什么不同?我在这里仍然缺少一些东西...感谢您的帮助。
    • 使用@interface 和@implementation 您正在创建您的自定义classes。您放入其中的变量和方法是您的类的一部分(一个类Vehicle 可能有一个变量maxSpeed、numberOfPassenger 和方法start 或accelerate)。
    • 如果您使用终端并被指示设置@autoreleasepool,我认为这些都是相对简单的示例,只有一个或几个源文件。在这种情况下,您必须设置一个池,以便您的应用程序中的 autoreleased 对象可以从内存中正确释放。
    • 尝试用Xcode创建一个模板项目,你会看到main.h文件中有一个autoreleasepool。那是因为每个应用程序都至少需要其中一个。话虽如此,我不会为此烦恼太多。
    • 我刚刚得到它。谢谢。
    【解决方案2】:

    @interface主要用于声明公共函数和变量

    @implement 用于私有方法和函数(即使在 Objective C 中所有成员变量和函数都是公共的)

    【讨论】:

      猜你喜欢
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多