gpt4 book ai didi

objective-c - 处理 View 和递归

转载 作者:行者123 更新时间:2023-11-29 11:16:39 28 4
gpt4 key购买 nike

这是我的代码

A类.h

#import classB.h

@interface classA : UIViewController
{
classB *classb;
}

@property (nonatimic, retain) classB *classb;
@end

A类.m

@implementation classA
@synthesize classb = _classb;

-(void)someMethod
{
self.classb = [[classb alloc]initWithNibName:@"classb" bundle:nil];
[self.view.superview addSubview:self.classb.view];
[self.view removeFromSuperview];

}
@end

该代码运行良好。 classb View 正常加载。问题从这里开始

B类.h

#import classA.h

@interface classB: UIViewController
{
classA *classa;
}
@property (nonatimic, retain) classA *classa;
@end

现在在 classA 我得到错误

Unknown type name classB;

我认为问题是某种递归。这个想法是 classA 加载 classB View ,并在某些时候 classB 从 superview 中删除自身并将 classA 添加为 View

最佳答案

#import classA.hclassB.h 移动到 classB.m 并添加 @class classA 到classB的头文件

如果您仅在 @interface 中使用一个类(即您不使用在该类 header 中定义的 @protocol),那么使用 @class SomeClass 语句。

这将防止循环包含。


类B.h:

@class classA;

@interface classB: UIViewController
{
classA *classa;
}
@property (nonatomic, retain) classA *classa;

@end

类B.m:

#import "classB.h";
#import "classA.h";

@implementation classB
/* */
@end

关于objective-c - 处理 View 和递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9148033/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com