gpt4 book ai didi

iphone - 这两个会生成相同的编译时间吗?

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

我知道 @class 应该加快编译时间,但如果我有这样的情况:

#import <Foundation/Foundation.h>
@class BNRItem;
@interface BNRItemStore : NSObject
@end
<小时/>
#import "BNRItemStore.h"
#import "BNRItem.h"

@implementation BNRItemStore
@end

我可以这样做并仍然获得相同的编译时间吗:

#import <Foundation/Foundation.h>
#import "BNRItem.h"
@interface BNRItemStore : NSObject
@end
<小时/>
#import "BNRItemStore.h"

@implementation BNRItemStore
@end

最佳答案

(假设您实际上在这些文件中的某个位置使用了 BNRItem)

对于 BNRItemStore.m 来说是一样的,但它可能会增加 #import BNRItemStore.h 的任何内容的编译时间和重新编译频率 - 因为许多需要查看 BNRItemStore 的类通常不需要同时查看 BNRItem@interface

随着该模式扩展到项目中的许多 header ,对一个 header 的简单编辑可能需要重新编译一大组文件,其中包含大量包含文件。它还会传播到索引器,索引器根据变化不断建立索引。

最好使用前向声明,除非您的项目很小(并将保持)。

能够在 .m 中声明所有实例变量/属性实际上非常好——因为这是对 clang 的一个相当新的补充。抽象和构建时间可以显着缩短。

关于iphone - 这两个会生成相同的编译时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11970673/

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