環境初始化器元件是不是編譯時間常數 - 從一個const結構參照一個const塊
的XCode 4.6.2
OSX 10.7.5
NMFoo.h
typedef void(^NMFooBlock)();
struct NMFooStruct {
__unsafe_unretained NMFooBlock fooBlock;
};
typedef struct NMFooStruct NMFooStruct;
@interface NMFoo : NSObject
@end
NMFoo.m
#import "NMFoo.h"
NMFooBlock const NMFooBlockConst = ^{};
NMFooStruct const NMFooStructConst = { .fooBlock = NMFooBlockConst };
@implementation NMFoo
@end
產生一個
error: initializer element is not a compile-time constant NMFooStruct const NMFooStructConst = { .fooBlock = NMFooBlockConst };
那是預期的行爲,即使NMFooBlockConst被定義爲const?
它肯定是1.不是「聯繫」,而是常數,2.這與Xcode無關。 – 2013-04-17 17:15:07