我猜你說的定義在@interface中是指定義在頭文件裏, 定義在@implementation中是指在實現文件中的類擴展(Class Extensions), 一般來說把要公開的信息(變量,屬性,方法)定義在頭文件裏, 把要隱藏的信息定義在類擴展裏,只是爲了隱藏私有信息, 不需要被外界知道的就不要放在頭文件裏, 這樣可以隔離接口和實現。
實例變量 定義在 @interface 和 @implementation 有何區別?
Objective-C程序設計第2版實例變量定義在 @interface 下
@interface Hello:NSObject
{
int foo;
}
Objective-C程序設計第4版
實例變量定義在 @implementation 下
@implementation Hello:NSObject
{
int foo;
}
一個可以被子類繼承 一個不可以。
http://segmentfault.com/q/1010000000155140
在 @interface 裏聲明的變量,如果你提供了 setter/getter 方法,那麼其他類可以使用該變量的 getter/setter.
然而,在 @implementation 裏聲明的變量,其 getter/setter 方法只在該類中可以。