天天看點

obj-c中如何定義類的私有執行個體方法

obj-c原生沒有提供此項機制,不像java有private/protected/public方法的概念。obj-c中的@private以及類似的@protected和@public是用于修飾類的執行個體變量的而不能修飾方法。

正如obj-c沒有類變量可以通過定義static靜态變量來解決一樣,obj-c中類的私有執行個體方法也是可以通過分類來模拟的。我們可以将分類定義從類的頭檔案中轉移到類的實作檔案中來實作:

foo.h

foo.m

main.m

程式運作結果:

如果将直接調用calc那行代碼去掉注釋則編譯報錯如下: