ここで私がやりたいこと
アクションを起こす前にループとかそういうのをやりたくて、今はこんな感じでやってます
//check if it's multiplayer mode
if ([PlayerInfo instance].playingMultiplayer == YES)
{
//no cards has been played
//the while and NSRunLoop combination seems harsh
while ([PlayerInfo instance].cardsPlayed == NULL)
{
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}
//after the "loop thing" done, execute this method
//take out cards with the broadcasted cardsPlayed, it's event based
[self takeOutCards:[PlayerInfo instance].cardsPlayed];
}
//single player, don't bother this
else
{
//AI logic, select possible best cards
NSArray * bestCards = [playerLogic selectBestMove];
[self takeOutCards:bestCards];
}
これは悪い習慣のように見えます。
ちなみに、[PlayerInfo インスタンス].cardsPlayed はサーバーからブロードキャストされる変数で、頻繁に変更されます。別のユーザーがどのカードがプレイされるかを待っている間、ユーザーの操作に基づいて変化します。
要するに、ブロードキャストされた変数が来るのを待っている間に何をすべきですか? なにか提案を?ありがとう