我對Objective-C非常陌生。嘗試設置TextView的值時,OSX應用程序會凍結嗎?
首先請查看代碼:
這是屬性:
@property (atomic) IBOutlet NSTextView *txtResponse;
,就是這樣的動作:
- (IBAction)sendReq:(id)sender {
@synchronized(self)
{
request *req = [[request alloc] init];
voidCallback callback = ^(NSURLResponse *resp, NSData *data, NSError *error) {
NSString *val = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
[self.txtResponse setString:val];
//NSLog(val);
};
[req setUrl:[[NSURL alloc] initWithString:@"http://foo.bar"]];
[req setCallback:callback];
[req send];
}
}
,當我嘗試使用[self.txtResponse setString:val];
的UI凍結
我也試過沒有@synchronized(self)
W這是問題嗎?
在此先感謝!
你確定'val'不是零3天?在將其設置爲文本視圖之前,請嘗試打印它。 – TheAmateurProgrammer
它沒有@synchronize凍結?我問,因爲這聽起來像是遇到了僵局。 – Jeremy
@TheAmateurProgrammer是的,我用'NSLog'來顯示內容 –