2009-05-12 4 views
0

У меня есть классDownload, который использует NSURLConnection. Я хотел бы сохранить все события NSURLConnection в classDownload. ClassA хочет использовать classDownload, но также получать уведомления, такие как connectionDidFinishLoading, который называется Finish в classDownload. Как получить уведомления от classDownload до ClassA?Нужен ли мне протокол для уведомления?

ответ

2

Предполагая, что classDownload является делегатом NSURLConnection, вы можете просто использовать NSNotificationCenter для трансляции событий при вызове методов делегата. Затем, в classA, подпишитесь на события в classDownload, используя addObserver:. Дайте мне знать, если вам нужны пояснения или фрагменты кода.

Редактировать

Чтобы получить ответ на вопрос в заголовке, нет, вам не нужен протокол для подписки на события, опубликованных объект с помощью NSNotificationCenter.

+0

Спасибо. Откуда берутся значения извещения уведомления для NSNotificationCenter? – 4thSpace

+0

Вы имеете в виду метод addObserver? Это просто селектор, который должен быть вызван классом, который вы передаете, когда происходит событие. Вы завершаете свою подпись функции в @selector(), чтобы получить ее. Например, если у вас есть метод в классеA с именем downloadFinished, который принимает 1 параметр, вы должны передать @selector (downloadFinished :) для вызова метода addObserver:. –

+0

Спасибо. Независимо от того, что я делаю, он продолжает загружать мою домашнюю страницу, хотя я даю ей разные файлы для загрузки. Я пробовал NSLog (@ "request% @:", [URL запроса]); чтобы увидеть, какой URL-адрес он получает в соединении, но ничего не выводит на консоль. Есть ли у вас какие-либо предложения? – 4thSpace

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