2013-05-02 94 views
0

我得到一個錯誤從主線程或Web線程以外的線程獲取Web鎖定。 UIKit中不應該從輔助線程

Obtaining the web lock from a thread other than the main thread or the web thread. UIKit should not be called from a secondary thread 

的代碼NSString *tokenString=[NSString stringWithFormat:@"username=%@&password=%@",[[userName.text lowercaseString] MD5],[password.text MD5]];

我使用的類文件爲MD5調用。我是從MD5

這MD5導致螺紋鎖我如何刪除這個警告

回答

0
Obtaining the web lock from a thread other than the main thread or the web thread. UIKit should not be called from a secondary thread 

的修復的概念很簡單;不要通過調用performSelectorOnMainThread方法更新從二次thread.update從你的主線程的UI用戶界面

+0

我創造這樣的代碼' __block NSString * tokenString; tokenString = [NSString stringWithFormat:@「username =%@&password =%@」,[[userName.text lowercaseString] MD5],[password.text MD5]]; })dispatch_sync(dispatch_get_main_queue(),^ { }) ; '仍然沒有工作。 – ajithmn89 2013-05-02 05:45:33

+0

此代碼與UI更新無關,還有其他更新UI的位置。 – 2013-05-02 06:04:04

+0

我正在從安全類型文本字段採取文本是造成問題? – ajithmn89 2013-05-02 06:12:11

0

類似的問題已經被回答here is the link to it 只使用

dispatch_async(dispatch_get_main_queue(), ^{  }); 

同時獲得密碼和用戶名,

希望這能解決你的問題

1

爲了避免撞車使用此函數來調用該方法的主線程

希望,這將是解決您的問題。

[self performSelectorOnMainThread:@selector(doneButtonAction) withObject:nil waitUntilDone:NO]; 
2

當您從輔助線程調用的UIKit會出現這種情況?

爲了解決這個嘗試以下

dispatch_sync(dispatch_get_main_queue(), ^{ 

//Call the function from here 

}); 

[self performSelectorOnMainThread:@selector(yourmethod:)withObject:obj waitUntilDone:YES]