这是xcode上的IOS代码块在编译时抛出错误 "语义问题:没有可行的重载="
...
ccColor3B c_=;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
c_=ccc3(0,0,0);
});
...
这只是一个例子。我从另一个从数据库读取值的方法获取ZERO示例值。 因此我想只调用一次RGB值。
我应该使用旧方法吗?还是使用dispatch_once
的解决方案我的旧方法是:
...
static BOOL everCalled=NO;
ccColor3B c_;
if(!everCalled){
c_=ccc3(0,0,[myClass myClassMethodForExample]);
everCalled=YES;
}
...
答案 0 :(得分:1)
您正在尝试写入块外的数据类型;这是允许的,但您必须使用__block
关键字:
__block ccColor3B c_=;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
c_=ccc3(0,0,0);
});