У меня есть небольшое приложение с iAds, и я могу позволить людям платить за обновление.
iAd настраивается в NIB приложения. Я проверяю статус покупки в методе viewDidLoad
основного UIViewController и вызываю следующие методы для элемента розетки ADBannerView
:
[adBanner removeFromSuperview];
adBanner = nil;
К сожалению, если я наблюдаю за использованием данных устройства, некоторые данные все еще загружаются для объявления.
Есть ли способ правильно убить iAd, чтобы он не загружал данные?
Я знаю, что мог бы создать представление iAd программно, а затем добавить его только в том случае, если пользователь не приобрел продукт, но мой продукт работает нормально из NIB, и я бы не стал его менять по этой причине.
UPDATE:
В моем файле .h у меня есть:
IBOutlet ADBannerView* adBanner;
В файле .m в методе - (void)viewDidLoad
у меня есть:
if (purchased) {
[adBanner removeFromSuperview];
adBanner.delegate = nil;
adBanner = nil;
}
Я надеюсь, что этого будет достаточно, чтобы удалить iAd, прежде чем он сможет загрузить какие-либо данные.
Увы, этого недостаточно для предотвращения загрузки данных представлением. Я подозреваю, что в это время происходит задержка, когда он полностью освобождается - но я не знаю, как это сделать, если не считать самого вызова dealloc
.
Кто-нибудь знает лучший / правильный способ полного уничтожения объекта, загруженного через XIB и присвоенного IBOutlet
?