@synchronized(self.runningOperations) { line 1
[self.runningOperations addObject:operation]; line 2
}
이 코드를 디버깅 할 때 먼저 줄 1을 실행 한 다음 줄 2로 이동합니다.이 후에 줄 1로 다시 이동합니다. 그 다음에 2 행으로 이동 한 다음 @synchronized로 건너 뜁니다. 하지만 runningOperations를 인쇄 할 때 처음으로 행 2 코드를 실행하면 Object가 self.runningOperations에 추가되지 않고 두 번째 코드에 추가됩니다. 두 번 실행되는 이유와 Object가 두 번째로 self.runningOperations에 추가되는 이유는 무엇입니까?@synchronized Objective-C
'self.runningOperations! = nil'? – trojanfoe
처음 작업 개체가 존재하지 않을 수도 있습니다. – SRI
@trojanfoe 1 행과 2 행 사이에 추가합니다. 또한 tiwce를 실행하지만 처음에는 2 행 ([self.runningOperations addObject : operation];)을 실행하지 않았으므로 처음에는 self.runningOperations가 nil하지만 두 번째로 두 번째 코드를 실행하므로 두 번째에는 self.runningOperations가 nil이 아닙니다.이 경우는 무엇입니까? – SubCycle