3 回答

TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊
盡管實際上大多數(shù)時候類方法和靜態(tài)方法是相同的,但是它們是不同的。使用靜態(tài)方法,該類充當(dāng)名稱空間限定符。對于類方法,類本身是一個對象,因此類方法對于類對象而言與實例方法對實例的作用完全相同。因此,您可以執(zhí)行以下操作
@interface TestClass : NSObject
+ (void)classOrInstanceMethod;
- (void)classOrInstanceMethod;
@end
...
NSArray * arr = [NSArray arrayWithObjects:
[[[TestClass alloc] init] autorelease],
[TestClass class],
nil];
for( id obj in arr )
[obj classOrInstanceMethod];
調(diào)用哪個版本的classOrInstanceMethod取決于obj是類對象還是and實例。如果您熟悉工廠類模式,則此模式是Objective-C語言的一部分。
- 3 回答
- 0 關(guān)注
- 1468 瀏覽
添加回答
舉報