簡體   English   中英

Objective-C-將變量保留為.h或.m-有什么區別?

[英]Objective-C - Keeping variables in .h or .m - any difference?

在.h文件中-

@interface MyClass : NSObject {
    @someAccessibilityModifier int a; // someAccessibilityModifier = @public, @private
}

或在.m文件中-

@implementation MyClass {
    @someAccessibilityModifier int a; // someAccessibilityModifier = @public, @private
}

以上兩種方式a區別(由於兩種方式,的可訪問性和行為都相同)?

在前者, a 在類的外部訪問。 如果您不希望將其設為true,則必須指定@private

無論如何,除非您明確希望ivar在類之外可見(並且幾乎肯定不會),否則應使用后一種形式(在@implementation指定)。 Ivar通常被視為實現細節,因此不應放在標頭中。

唯一的例外是如果您正在編寫32位OS X代碼,因為它仍然使用易碎的ABI,它要求在@interface聲明所有ivars。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM