gpt4 book ai didi

objective-c - Cocoa:构建警告,转发声明的类和 @interface 可能不存在

转载 作者:行者123 更新时间:2023-12-03 17:45:07 24 4
gpt4 key购买 nike

我正在尝试在 Leopard 下的项目中构建集群插件。我有以下两个问题。

在项目中接口(interface)类定义为

@interface ClusteringController : NSWindowController
{
.......
.....
....
}
@end.

该类在实现类中使用前向声明:

@class ClusteringController;

然后在一个函数中它被用作:

- (long) filterImage:(NSString*) menuName
{
ClusteringController *cluster = [[ClusteringController alloc] init];
[cluster showWindow:self];
return 0;
}

当我构建这个项目时,它会产生警告:

warning: receiver 'ClusteringController' is a forward class and corresponding @interface may not exist 

此外还产生了一个警告:

warning: no '-updateProxyWhenReconnect' method found

以下代码行会出现此警告:

if(delegate) [delegate updateProxyWhenReconnect];

有人可以帮助我克服这些警告吗?

最佳答案

当头文件将在接口(interface)之后导入时,将使用前向声明。在我看来,您在类本身的接口(interface)之后使用了 @class 指令。

前向类声明的正常使用如下所示:

#import "SomeSuperClass.h"
@class Forwardclass;
@interface SomeClass : SomeSuperClass
{
Forwardclass anIvar;
}
@property Forwardclass anIvar;

@end
#import "SomeClass.h"
#import "ForwardClass.h"
@implementation SomeClass
@synthesize anIvar;

-(void) setAnIvar:(ForwardClass *) aForwardClass;

@end

@class 指令从未在实现 (.m) 文件中使用。

关于objective-c - Cocoa:构建警告,转发声明的类和 @interface 可能不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2386676/

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