블록 내에서 @synchronized(self)
을하고 싶다고합시다. 나는 이것이 유지 순환으로 이어질 것입니다 생각, 그래서 일반적으로 우리는이처럼 다시 작성합니다 :이 방법을 @synchronized
지시어를 사용할 때블록에서 @synchronized (self)가주기를 유지합니까?
-(void)myMethod
{
__weak TheClass * weakSelf = self;
dispatch_async(dispatch_get_main_queue(),
^{
TheClass * strongSelf = weakSelf;
if(strongSelf == nil)
{
return;
}
@synchronized(strongSelf)
{
//mutex code
}
}
}
내 질문입니다, 그것은 @synchronized(self)
에 해당?
당신의 짧은 대답은 제목에 질문에 대한 대답하지만, 문제의 마지막 문장은 또한 예/아니오 질문이다. 당신이 대답하는 것을 분명히하고 싶을 수도 있습니다. 또한, 당신은 그 마지막 질문에 답을하지 않았습니다. 예,'@synchronized (strongSelf)'는'@synchronized (self)'와 같습니다. –
@KenThomases의 의견이 반영되어야합니다. 둘 다 중요한 포인트입니다. – yano