Objective-c 中的 @interface 声明中是否需要大括号?

发布于 2024-12-03 12:34:16 字数 195 浏览 1 评论 0原文

下面的代码编译:

@interface MyClass : ParentClass // missing {
// missing }
@property (nonatomic, copy) NSString *myString;
@end

我想知道 @interface 声明中的大括号是否实际上是必要的。

The following code compiles:

@interface MyClass : ParentClass // missing {
// missing }
@property (nonatomic, copy) NSString *myString;
@end

I'm wondering if the curly braces in @interface declarations are actually necessary.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初心未许 2024-12-10 12:34:16

不,{ } 部分不是必需的;没有它你的代码也能正常编译。这是您声明实例变量的区域,如果您不这样做,您可以将其省略。您实际上甚至不需要为您的属性声明 ivars — 编译器足够智能,可以将它们添加到需要的地方。

No, the { } section isn’t necessary; your code will compile fine without it. It’s the area where you declare instance variables, and if you’re not doing that, you’re free to leave it out. You don’t even actually need to declare ivars for your properties—the compiler’s smart enough to add them where they’re needed.

煞人兵器 2024-12-10 12:34:16

编译器足够聪明,可以将您的 @property 声明添加到类中。

这些括号的唯一用途是当您想要将变量设为私有、受保护或特别公开时。

例子:

@interface Example: NSObject {
@public
    int publicVar;
@private
    int privateVar;
    int privateVar2;
@protected
    int protectedVar;
}
@end

The compiler is clever enough to add your @property delarations to the class.

The only use for those brackets is when you want to make a variable private, protected or specifically public.

Example:

@interface Example: NSObject {
@public
    int publicVar;
@private
    int privateVar;
    int privateVar2;
@protected
    int protectedVar;
}
@end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文