請告訴我這兩者之間的區別:在您的接口中聲明變量聲明在Objective-C - 接口VS實現
@interface MyClass()
{
BOOL newUser;
}
或者
@implementation MyClass
{
BOOL newUser;
}
@end
請告訴我這兩者之間的區別:在您的接口中聲明變量聲明在Objective-C - 接口VS實現
@interface MyClass()
{
BOOL newUser;
}
或者
@implementation MyClass
{
BOOL newUser;
}
@end
變量,如1,在其他可見實例化MyClass的對象的類。 2.中聲明的變量只能在MyClass中可見。 這裏你應該看到: http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/
編輯:@JoshCaswell是正確的。 1.是一個匿名類別。根據聲明接口的位置可以看到它的變量。一個更好的閱讀鏈接的鏈接是: http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html
第一個聲明是在類擴展中,它可能不是(通常不是)在公共頭文件中。而且,在擴展中聲明的變量默認是私有的,而不是'@ protected'。 –
在第二種情況下,即使實例變量的存在,該類的用戶也不會知道該實例變量的存在,只有該類本身。但是,在第一種情況下,使用類聲明導入頭文件的人將知道有一些實例變量名爲this,即使它們聲明爲「@ private」,「@ protected」或「@ package」。 – 2013-07-30 20:23:45
@ H2CO3第一個是類擴展(很可能是.m,而不是.h)。 – rmaddy
@rmaddy確切(但是,術語不是我的主要觀點)。 – 2013-07-30 20:26:52