【发布时间】:2013-08-23 10:18:22
【问题描述】:
@synchronized(self.runningOperations) { line 1
[self.runningOperations addObject:operation]; line 2
}
当我调试这些代码的时候,一开始运行第1行,然后到第2行。没关系,但是之后又到第1行,然后到第2行,然后跳出@同步的。 但是当我打印 runningOperations 时,它第一次运行第 2 行代码时,对象没有添加到 self.runningOperations 中,它是在第二次添加的。 为什么它会运行两次,为什么第二次将 Object 添加到 self.runningOperations 中?
【问题讨论】:
-
和
self.runningOperations != nil? -
我认为第一次操作对象可能不存在。
-
@trojanfoe 我在第 1 行和第 2 行之间添加它,它也运行 tiwce,但第一次没有运行第 2 行([self.runningOperations addObject:operation];),所以第一次 self.runningOperations 为 nil,但第二次运行第 2 行代码,所以第二次 self.runningOperations 不是 nil。这是什么情况?
-
你需要更好地解释自己;我不明白你的意思。
-
@ernaidu 是的,我在第 1 行和第 2 行之间添加了 if(self.runningOperations != nil),第一次操作对象是 nil,但第二次不是 nil。
标签: ios objective-c synchronized