Фоновая тема -> обновить пользовательский интерфейс - PullRequest
1 голос
/ 03 ноября 2011

Я загружаю и анализирую документ XML. Во время этого я хочу обновить свой UIProgressView. Я знаю, что должен делать это в основном потоке, а не в фоновом потоке, где документ анализируется.

Но моя проблема в том, что, когда я пытаюсь это сделать:

[self performSelectorOnMainThread:@selector(setProgressStr) withObject:[NSString stringWithFormat:@"%f", updateTo] waitUntilDone:NO];

Я отправляю его через строку NSString, потому что поплавок не будет работать. Но теперь я получаю следующую ошибку:

-[TDFetch setProgressStr]: unrecognized selector sent to instance 0x6b9a700

Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 03 ноября 2011

Если метод, который вы пытаетесь использовать, принимает аргумент, это означает, что у него есть двоеточие в имени - двоеточие на самом деле является частью имени. Вы должны включить это, когда вы получите селектор:

@selector(setProgressStr:)
2 голосов
/ 03 ноября 2011

Похоже, вы забыли о ':' после имени селектора. Попробуйте

[self performSelectorOnMainThread:@selector(setProgressStr:) withObject:[NSString stringWithFormat:@"%f", updateTo] waitUntilDone:NO];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...