類別(category)除了可以對類進行擴展外,前向引用的能力也很強大。對於一些私有的方法(沒有在.h文件裡面聲明的方法)如果我們想使用的話,有的使用的是performSelector來執行動態調用,這樣完全可以調用私用方法,但是這樣完全避開了編譯器的語法檢查,有時候未必是一種好的方法。使用類別來進行前向引用可以解決這個問題。
定義一個item類
@interface ZJItem : NSObject - (void)info; @end
.m文件
@implementation ZJItem - (void)info{ NSLog(@"這是在接口部分"); } - (void)myPrivate{ NSLog(@"自己的方法"); } @end
可以看到報錯的信息。
加入前向引用後,錯誤消失<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/20150425/2015042508384087.png" alt="">