1

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

1 回答 1

1

You are attempting to write to a data type which is outside of the block; this is allowed but you have to use the __block keyword:

__block ccColor3B c_=;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
     c_=ccc3(0,0,0);
});
于 2013-08-20T14:40:35.813 回答