2010-07-23 3 views
0

Я хочу изменить uiimage.image путем вызова метода в моем ViewController:Проблемы с uiimageview.image

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

Чтобы сделать его коротким: Изображение не меняется. Это происходит не из-за NSData I pass (что, по моему мнению, было проблемой). Этот метод вызывается из appdelegate.

В другой пустоте в этом диспетчере просмотра я могу без проблем изменить изображение с помощью drawimage.image = otherimage, поэтому я думаю, что вызов из AppDelegate вызывает проблему. Кто-нибудь знает, что я сделал неправильно? Thankie!

+0

Возможно, вы назвали этот метод на backgroundThread? – tonklon

+0

не знаю, что я знаю ... как я могу это проверить? – user400543

+0

Если вы не уверены, вероятно, это основной (а не фон) поток. Что такое 'drawImage'? – Rengers

ответ

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

+0

Является ли делегат приложения вызывать его после viewDidLoad и перед viewDidUnload? Является ли изображение таким же, как при работе? Можете ли вы попробовать внести некоторые другие изменения (возможно, в текст UILabel). –

+0

1st: yes 2nd: no. его рисованной линии. Но я также попытался обменять его на другую картинку, которую я использую, она не работает (это не тот образ, который вызывает проблему, я думаю) 3rd: Я просто попытался манипулировать center.x и center.y другого изображения с помощью такой же функция. он не работает. Я предполагаю, что это вызов appdelegate. не знаю, почему. Во время этой проверки контрольных точек я увидел, что первая точка останова вызывается, когда представление не было на экране (мы все еще находились на всплывающем экране). Может быть, это проблема? – user400543

Смежные вопросы