rlk*_*024 0 iphone cocoa-touch objective-c uikit ipad
在iPad应用程序中,我正在使用UIView的自定义子类和UIViewController.这是视图标题:
@interface pdfView : UIView {
CGPDFDocumentRef doc;
}
-(void)setDoc:(CGPDFDocumentRef)newDoc;
@end
Run Code Online (Sandbox Code Playgroud)
这是控制器头:
@interface iPadPDFTestViewController : UIViewController {
CGPDFDocumentRef doc;
}
- (void)loadPDF;
@end
Run Code Online (Sandbox Code Playgroud)
控制器实现的一部分:
- (void)viewDidLoad {
[super viewDidLoad];
[self loadPDF];
[self.view setDoc:doc];
}
Run Code Online (Sandbox Code Playgroud)
在Interface Builder中,我将视图对象设置为使用类pdfView.
在编译时,[self.view setDoc:doc];会发出警告"'UIView'可能无法响应'--setDoc'." 我猜这个警告出现是因为编译器认为它正在查看UIView(它没有实现setDoc方法)而不是pdfView.但为什么会这么想?我怎么能告诉它它正在看什么类,以便清除警告?
编译器只知道代码定义的内容,UIViewController将它的view属性定义为UIView,这就是你看到警告的原因.
您可以通过将视图转换为PDFView来避免警告:(PDFView*)self.view;
为了简化这个实现一个基本的getter方法
- (PDFView *)view {
return (PDFView *)self.view;
}
Run Code Online (Sandbox Code Playgroud)
另外,作为附注,你应该真正命名你的类,所以他们从至少一个大写字符开始,理想情况下是一个前缀(即PDFView,理想情况下MYPDFView(其中MY是自定义前缀)).
| 归档时间: |
|
| 查看次数: |
2379 次 |
| 最近记录: |