Objective c 生成使用extern指令导入常量double失败
我有一个文件:Objective c 生成使用extern指令导入常量double失败,objective-c,cocoa,Objective C,Cocoa,我有一个文件: #import "OutletsHandler.h" @implementation OutletsHandler - (IBAction) pi : (id) sender { extern const double PI; // here I try to import PI [textField setDoubleValue: PI]; } - (id)init { self = [super init]; if (self) { } retur
#import "OutletsHandler.h"
@implementation OutletsHandler
- (IBAction) pi : (id) sender
{
extern const double PI; // here I try to import PI
[textField setDoubleValue: PI];
}
- (id)init
{
self = [super init];
if (self)
{
}
return self;
}
- (void)dealloc
{
[super dealloc];
}
@end
OutletsHandler.h导入CalculatorScanner.h,这是CalculatorScanner.h:
#import <stdbool.h>
const double PI=3.141592654;
我做错了什么?你的问题是你在
CalculatorScanner.h
中定义了PI
,而你只需要声明它。要使其正确编译和链接,请将其放入CalculatorScanner.h
:
extern const double PI;
并将其放入计算器扫描程序.cpp
:
const double PI = 3.141592654;
但在这种情况下,这也不是正确的解决方案。这里正确的解决方案是使用标准常量
M_PI
,而不是定义自己的(不太准确的)常量。这里有一个范围问题如果你想使用extern,你不能在方法中使用它,它必须在全局范围内。问题是,即使我只声明const double PI=3.141592654,我也会得到错误;似乎xcode找到了一个重复的变量。这是完全的错误:可能是因为双重包含:我使用import指令,但不知道如何修复它(即使使用include而不是import,错误仍然存在)。
const double PI = 3.141592654;