objective-c error:没有可行的重载=

时间:2013-08-20 12:46:54

标签: objective-c compiler-errors cocos2d-iphone dispatch

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

1 个答案:

答案 0 :(得分:1)

您正在尝试写入块外的数据类型;这是允许的,但您必须使用__block关键字:

__block ccColor3B c_=;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
     c_=ccc3(0,0,0);
});