所以这成了一个大问题。每当我在多个线程上调用println时,它会将我的消息与彼此混合起来,给我这样的结果:
aeNdtedwt owbrolkro kcM kaM natanoga egarer:rr :aa yda:dd d(b Flbuolncockct kit ootn o)a
rarraryaN:ye :t( wF(ouFrnukcn tcMitaoinnoa)ng
)e
我想知道避免这种情况的最佳方法吗?总是从主线程中调用它?请改用NSLog?
答案 0 :(得分:1)
你可以像这样使用
let delayTimeOne = dispatch_time(DISPATCH_TIME_NOW,
Int64(1 * Double(NSEC_PER_SEC)))
let delayTimeTwo = dispatch_time(DISPATCH_TIME_NOW,
Int64(2 * Double(NSEC_PER_SEC)))
let delayTimeThree = dispatch_time(DISPATCH_TIME_NOW,
Int64(3 * Double(NSEC_PER_SEC)))
dispatch_after(delayTimeOne, dispatch_get_main_queue()) {
println("test1")
}
dispatch_after(delayTimeTwo, dispatch_get_main_queue()) {
println("test2")
}
dispatch_after(delayTimeThree, dispatch_get_main_queue()) {
println("test3")
}
// output
// test1
// test2
// test3