ViewController我想创建在 .h 文件开头导入的类型变量
KTOneFingerRotationGestureRecognizer.h
#import <UIKit/UIKit.h>
@class ViewController.h;
@interface KTOneFingerRotationGestureRecognizer : UIGestureRecognizer
{
ViewController* mainViewController; // error: Unknown type name `ViewController`; did you mean `UIViewController`?
}
@property (nonatomic, assign) CGFloat rotation;
@property (nonatomic, strong) ViewController* mainViewController; // error: Unknown type name `ViewController`; did you mean `UIViewController`?
@end
Run Code Online (Sandbox Code Playgroud)
我需要这些变量位于头文件中,因为它们必须可以从类外部访问和分配。
谢谢
编辑:
感谢您的回复。正如 LostInTransit 所建议的,错误是由于ViewController从KTOneFingerRotationGestureRecognizer和KTOneFignerRotationGestureRecognizer从导入而发生的ViewController。按照建议,我将其更改#import "ViewController.h"为@class ViewController;消除了错误,但现在我的代码无法使用。
访问的目的ViewController是我想ViewController从中检索对象的位置KTOneFingerRotationGestureRecognizer,但@class声明不允许我访问该变量。我来演示一下。
视图控制器.h
#import <UIKit/UIKit.h>
#import "KTOneFingerRotationGestureRecognizer.h"
@interface ViewController : UIViewController
{
UIView* pitchCircleView;
}
@property (nonatomic, strong) UIView* pitchCircleView;
@end
Run Code Online (Sandbox Code Playgroud)
我正在尝试在以下位置检索它:
KTOneFingerRotationGestureRecognizer.m
float f = mainViewController.pitchCircleView.frame.origin.x;
但它给了我错误:Property pitchCircleView cannot be found in forward class object ViewController
尝试使用@class而不是#import. 然后在执行中导入。您可能会因为循环包含(即您的ViewController类导入KTOneFingerRotationGestureRecognizer)而看到这一点 - 但在我们看到一些代码之前无法确定。
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |