2010-07-23 78 views
0

問題我想在我的ViewController調用方法更改uiimage.image:與uiimageview.image

-(void) aendereBild: (NSData*)bildngage { 
    UIImage *uiimageAusData = [UIImage imageWithData: bildngage]; 
    drawImage.image = uiimageAusData; 
} 

要長話短說:圖像沒有改變。這不是由於我通過的NSData(我首先想到的是問題)。這個方法是從appdelegate調用的。

在這個視圖 - 控制我可以改變drawimage.image = otherimage圖像沒有任何問題,所以我覺得從AppDelegate中調用導致問題的另一個空白。任何人都知道我做錯了什麼? Thankie!

+0

你也許還稱在backgroundThread這種方法嗎? – tonklon 2010-07-23 18:19:09

+0

不是我所知道的...我怎麼能證實這一點? – user400543 2010-07-23 18:35:05

+0

如果你不確定,它可能在主(不是後臺)線程上。 'drawImage'究竟是什麼? – Rengers 2010-07-23 18:55:55

回答

0

我認爲@tonclon有它正確的,從的appDelegate呼叫不正確的線程發生。一種簡單的檢查方法是在工作線上放置一個斷點,並在不在線上查看正在使用哪個線程(在Xcode調試器中顯示)。

這個問題表明你如何做正確的線程更新,如果是這樣的話:

How do I update the UI in the middle of this thread?

你需要像

[drawImage performSelectorOnMainThread:@selector(setImage:) withObject:uiimageAusData waitUntilDone:NO]; 

是撥打電話到的appDelegate螺紋不一定是主線 - 你應該檢查。即使您沒有製作任何內容,您的應用程序也只能從幾個主題開始。

+0

至於我可以看到這兩種功能由線程1叫... – user400543 2010-07-23 19:10:36

+0

是應用程序的委託viewDidLoad中後viewDidUnload之前調用呢?圖像與其工作時相同嗎?你可以嘗試做一些其他的改變(也許是一個UILabel的文本)。 – 2010-07-23 19:17:21

+0

1st:是 2nd:no。它是一條手繪線條。但我也試圖與另一張照片我使用Exchange,它不工作(it's不引起問題的圖像,這是我認爲) 3:我只是試圖操縱與另一圖像的center.x和center.y功能相同。它不起作用。 我猜它是由appdelegate調用的。不知道爲什麼。在這個斷點測試期間,我看到第一個斷點是在屏幕上看不到的時候調用的(我們仍然在屏幕上)。也許這就是問題所在? – user400543 2010-07-23 19:21:53

相關問題