Ios 跨多个线程的println()会导致消息混合
所以这正成为一个大问题。每当我跨多个线程调用println时,它都会将我的消息相互混合,并给出如下结果:Ios 跨多个线程的println()会导致消息混合,ios,xcode,swift,println,Ios,Xcode,Swift,Println,所以这正成为一个大问题。每当我跨多个线程调用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?您可以像这样使用 let delayT
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?您可以像这样使用
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
NSLog是线程安全的。否则,您需要使用GCD或主线程的建议。