Aşağıdaki kodda, displayMyAlertMessage() işlevini iki kez çağırıyorum. Aradığım ilk şey mükemmel çalışıyor, ancak ikincisi bana fonksiyonun sadece ana iş parçacığından çağrılabileceğini söyleyen bir hata veriyor. Bunu durumumda nasıl yapabilirim?İşlev yalnızca ana iş parçacığında çağrılabilir, neden?
func displayMyAlertMessage(userMessage:String){
var myAlert = UIAlertController(title:"Alert", message:userMessage, preferredStyle: UIAlertControllerStyle.Alert)
let okAction = UIAlertAction(title:"Ok", style:UIAlertActionStyle.Default, handler:nil)
myAlert.addAction(okAction)
self.presentViewController(myAlert, animated:true, completion:nil)
}
hata alıyorum: Her zaman gelen UI öğeleri güncelleştirmek gerekir
2015-06-20 14:44:41.646 UserLoginAndRegistration[6064:750474] *** Assertion failure in -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished], /SourceCache/UIKit/UIKit-3318.16.14/Keyboard/UIKeyboardTaskQueue.m:374
2015-06-20 14:44:41.657 UserLoginAndRegistration[6064:750474] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '- [UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread.'
*** First throw call stack:
(0x186551e48 0x196c4c0e4 0x186551d08 0x1873d5554 0x18ad2b0a8 0x18ad2b734 0x18ad24a1c 0x18b251564 0x18b0156a8 0x18b0169e4 0x18b0188dc 0x18adee0b4 0x100028f9c 0x10002b500 0x10002b5f4 0x10002b624 0x10002b68c 0x185ee6540 0x187407508 0x187358c94 0x18734861c 0x18740a26c 0x1005a4df0 0x1005af854 0x1005a8120 0x1005b175c 0x1005b2f18 0x19746d2e4 0x19746cfa8)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
ile
İşleri Yalnızca ana iş parçacığı gelen UI değiştirebilir ve bir arka plan iş parçacığı onu değiştirmeye çalışıyorsun. – nhgrif
@nhgrif Ne yapmak istediğimi yapmanın doğru yolu nedir? – sdd