我確信這個問題之前已經被問過了,但是我搜索了並且找不到它,所以我提前在SO上覆制內容而道歉。這就是說:在Objective-C中,在重寫的方法中,您可以使用類似[super methodName]
的方法調用父類方法,但是如何防止其他代碼在父類中的子類中執行?這可能是因爲這是星期五,但我盯着我的顯示器幾分鐘,無法在我的腦海中過去。防止子類方法發射?
例子(子類):
- (void)methodName
{
[super methodName];
//Everything below this line shouldn't execute if tell it not to from the parent
NSString *aString = @"This should never be called.";
}
幫我出去!我知道有一個簡單的解決方案,但我的大腦只是今天不撿起來......
這是一個代碼味道給我。只要你需要開始做這樣的事情在你的代碼,你需要退後一步,然後問自己,爲什麼你需要做這個,然後重新設計你的代碼,所以你不必。 – Jasarien 2011-03-04 16:13:42
@Jasarien我同意。我正在維護一些設計不佳的代碼。這不是我習慣在我的代碼中做的事情,因此我爲什麼不熟悉。這是週五的補丁。目前正在進行重新架構。感謝您的建議,但! – lewiguez 2011-04-03 18:34:36
如果您正在檢查互聯網連接,我可以很容易地看到您如何做這種事情。你想檢查父類中的互聯網連接。你不想重複代碼,並在每一個孩子課上做。因此,讓孩子說類調用超和超你發現沒有互聯網連接,所以現在要阻止繼續對所有的子類。你是做什麼? – 2013-08-22 20:21:59