xcode 已知的类型名称未知?

vd8tlhqk  于 2023-03-04  发布在  其他
关注(0)|答案(2)|浏览(127)

Xcode突然显示了这个错误:"未知类型名称"
我来解释一下:我的故事视图控制器. h:

#import <UIKit/UIKit.h>
#import "Stories.h"

@interface StoriesViewController : UIViewController <UITextViewDelegate>

@property (strong) Stories *story; //Here it goes- "Unknown type name `Stories`"
@property (weak) IBOutlet UITextView *storyView;
@end

在我的故事中。h:

#import <UIKit/UIKit.h>
#import "ViewController.h"

@interface Stories : UIDocument

@property (strong) NSString * storyContent;

@end

又一次,出乎意料。
先谢了。
编辑:
在我的ViewController. h中:

#import <UIKit/UIKit.h>
#import "Stories.h"
#import "StoriesViewController.h"
#import "StoriesPickerViewController.h"
#import <QuartzCore/QuartzCore.h>

@interface ViewController : UIViewController <UITextFieldDelegate,  UIAlertViewDelegate> {

}

@end

NB@class抛出大量ARC问题。
我已经删除了对ViewController.h的无用引用,成功了,解决了!

35g0bw71

35g0bw711#

您遇到了circular reference问题。
实际情况是,当您加载ViewController时,它会经历导入、加载Stories.h、加载导入,然后返回ViewController.h,因此您陷入了无限循环。
要么删除其中一个冲突的导入,要么使用forward class declaration(该示例是针对C++的,有关Objective-C的示例,请参见here

pn9klfpd

pn9klfpd2#

经过这么多小时的花费,我发现,我已经导入了一些文件在.h头文件,这是导致导入递归。
如何修复-我在.m文件中移动了相同的导入,构建成功。
建议-避免在.h文件中导入类实现。
希望这有帮助!

相关问题