1

これは、コンパイル時にエラーをスローする xcode の IOS コード ブロックです。
「セマンティックな問題:実行可能なオーバーロードがありません =

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

これは単なる例です。データベースから値を読み取る別のメソッドからゼロの例の値を取得しています。したがって、RGB値を1回だけ呼び出したいと思います。

古い方法を使用する必要がありますか?または、dispatch_once を使用した解決策があります

私の古い方法は:

...
static BOOL everCalled=NO;
ccColor3B c_;
if(!everCalled){
  c_=ccc3(0,0,[myClass myClassMethodForExample]);
  everCalled=YES;
}
...
4

1 に答える 1

1

ブロック外のデータ型に書き込もうとしています。これは許可されていますが、次の__blockキーワードを使用する必要があります。

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