这是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);
});

10-07 17:43