在iPad應用程序中,我使用UIView的自定義子類和UIViewController。這裏的視野頭:清除UIView和UIViewController的「可能不響應」警告
@interface pdfView : UIView {
CGPDFDocumentRef doc;
}
-(void)setDoc:(CGPDFDocumentRef)newDoc;
@end
而這裏的控制器頭:控制器執行的
@interface iPadPDFTestViewController : UIViewController {
CGPDFDocumentRef doc;
}
- (void)loadPDF;
@end
部分:
- (void)viewDidLoad {
[super viewDidLoad];
[self loadPDF];
[self.view setDoc:doc];
}
在Interface Builder中,我給自己定的視圖對象使用類pdfView。
編譯時,[self.view setDoc:doc];
給出警告「'UIView'可能不會響應'--setDoc'。」我猜這個警告是因爲編譯器認爲它看着UIView(它不會實現setDoc方法)而不是pdfView而出現的。但爲什麼會這樣想呢?我怎麼能告訴它它真的在看什麼類,以清除警告?
想了解@ dannywartnaby關於在Objective-C中爲類名添加前綴以防止名稱空間衝突的重要一點的深層次處理:http://stackoverflow.com/questions/178434/what-is-the-best-way-to- solve-an-objective-c-namespace-collision – 2010-04-09 16:30:58
謝謝!這就像一個魅力。你的解釋是非常有用的 - 我現在看到編譯器從'view'屬性的定義中獲取它的類型信息。我現在正在做的是這樣的:'[(PDFView *)self.view setDoc:doc];' – rlkw1024 2010-04-10 23:18:58