Вот в чем проблема.
У меня есть метод под названием -(void)searchInBackground, который работает в фоновом режиме (performSelectorInBackground).
В этом методе у меня есть несколько разных потоков, которые также работают в фоновом режиме (performSelectorInBackground). Нравится:
-(void)searchingInBackground { @autoreleasepool { [self performSelectorInBackground:@selector(getDuplicatedPictures:) withObject:copyArray]; } @autoreleasepool { [self performSelectorInBackground:@selector(getLocationsOfPhotos:) withObject:copyArray]; } ... (and so on) }
В каждой из функций в потоках (например, getDuplicatedPictures, getLocationsOfPhotos...) они будут генерировать NSStrings в конце, и я буду использовать эти строки для обновления моего графического интерфейса текстового поля.
Чтобы обновить графический интерфейс моего текстового поля. Я создал функцию UpdateGUI, которая поможет мне обновить все мои NSStrings. Нравится,
-(void)UpdateUI { [_NumDupPhotosLabel(label for GUI) setStringValue: resultDupPhotos(string from thread function which is getDuplicatedPictures in this case)]; ....(includes all of my strings from threads) }
Вот проблема, когда я вызываю этот UpdateGUI, используя PerformSelectorOnMainThread в каждой из функций потоков. Это даст мне EXC_BAD_ACCESS. Вот что я сделал. Например:
-(void)getDupicatedPictures { resultDupPhotos = .....; [self performSelectorOnMainThread:@selector(UpdateUI) withObject:nil waitUntilDone:YES]; }
Если я не использую PerformSelectorOnMainThread, просто устанавливаю значения непосредственно в этих функциях, все работает нормально. Я просто хочу лучше организовать код.
-(void)getDuplicatedPictures { resultDupPhotos = .....; [_NumDupPhotosLabel setStringValue: resultDupPhotos]; (works good and it will set the value to the GUI label) }
Ребята, подскажите, как это исправить? Спасибо!!!
get
, если только они не относятся к особому типу, а это не так. Кроме того, предоператоры и ивары должны начинаться со строчных букв. Имена методов всегда должны начинаться со строчной буквы. - person bbum   schedule 22.05.2013