1
我期待在蘋果的MVC Networking sample project,我發現,在類PhotoGallery
筆者創建的方法abandonGalleryCacheAtPath:
的實例和類版本的同一個名字:類和實例方法與
線139:
+ (void)abandonGalleryCacheAtPath:(NSString *)galleryCachePath
線457:
- (void)abandonGalleryCacheAtPath:(NSString *)galleryCachePath
方法的所有實例的版本似乎做是有點採伐befo重新調用類方法如下:
[[QLog log] logWithFormat:@"gallery %zu abandon '%@'", (size_t) self.sequenceNumber, [galleryCachePath lastPathComponent]];
[[self class] abandonGalleryCacheAtPath:galleryCachePath];
日誌消息包括self.sequenceNumber
,這是這將不會提供給類方法的一個實例變量。
幾個問題:
- 會將系統自動直接調用正確的方法例如如果另一個類方法調用
self abandonGalleryCacheAtPath:abc
那麼方法的類版本將被執行,如果另一個實例方法調用它,那麼方法的實例版本將被執行? - 您是否認爲作者已經實施了純粹的實例方法,以便可以記錄
sequenceNumber
的值?做這種雙重實施還有其他設計/技術好處嗎?
感謝您的解釋 - 它回答了我的第一個問題。你對第二個有什麼想法嗎? –