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