gpt4 book ai didi

ios - 如何克服#import 循环?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:12 24 4
gpt4 key购买 nike

假设我有两个头文件:SomeFileA.hSomeFileB.h

SomeFileA.h包含SomeFileB.hSomeFileB.h包含SomeFileA.h

这会创建一个循环并混淆编译器。我们如何克服这个问题?

最佳答案

您应该“前向声明”您的类(class)。这告诉编译器该类存在,但不需要实际导入它。

SomeFileA.h

@class SomeFileB  // <-- This "forward declares SomeFileB"
@interface SomeFileA

@property (nonatomic, strong) SomeFileB *someFileB;
...
@end

SomeFileA.m

#import "SomeFileB.h"
@implementation SomeFileA
...
@end

同样的事情,但是在 SomeFileB 中相反

SomeFileB.h

@class SomeFileA  // <-- This "forward declares SomeFileA"
@interface SomeFileB

@property (nonatomic, strong) SomeFileA *someFileA;
...
@end

SomeFileB.m

#import "SomeFileA.h"
@implementation SomeFileB
...
@end

如果您不在 header 中使用某个类,则无需转发声明它。

@interface SomeFileA
//I took out the property for SomeFileB.. no need for the @class anymore.
...
@end

关于ios - 如何克服#import 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31830536/

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