通常、オブジェクトを一意の参照のために@synchronized()ブロックに渡します。例えば、Objective Cでは、@synchronized()ブロックにnilまたはnullを渡すとどうなりますか?
+(id)sharedDBHandler
{
@synchronized (self) {
if (sDBHandler == nil) {
sDBHandler = [self new];
}
}
return sDBHandler;
}
私たちはそれにnilを渡すとどうなりますか?
はそれを試してみてください。何が起こった? – rmaddy
FYI - 投稿したコードで 'nil'が' @synchronized'に渡されることはありません。 – rmaddy
FYI - あなたが投稿したコードは、シングルトンを作成するための古くて古い方法です。代わりに 'dispatch_once'を使用してください。多くの例があります。 – rmaddy