2010-11-22 2 views
0

Ранее я задавал этот вопрос слишком много кода.Делегат установлен в контроллере просмотра, не поддерживается в подвале

ViewController инициализирует цепочку UIView, контроллер >> View >> SubView, в ViewController. После того, как подвид инициализровать ViewController устанавливается в качестве делегата:

aSubView.delegate = self; 

NSLog(@"[email protected]",aSubview.delegate), возвращает ViewController, так что я знаю, что это установлено.

В SubView NSLog(@"[email protected]",self.delegate), возвращает случайное дерьмо, такое как hr.lproj или путь к файловой структуре Foundation.

Сбой при попытке реализовать любой из методов делегатов, поскольку делегат не ссылается на ViewController, а вместо этого на случайность.

Это то, что файл SubView.h выглядит следующим образом:

#import "TestDelegate.h" 

@interface TestSubView : UIView { 

id<TestDelegate> delegate; 
} 

@property (assign) id<TestDelegate> delegate; 

EDIT: ViewController инициализируется в приложение делегата, как например:

ViewController *controller = [[ViewController alloc] init]; 
[window addSubview:controller.view]; 
[controller release]; 

Единственная вещь, которую я добавил в приложение Делегировать по умолчанию является импорт заголовка ViewController

ответ

1

Возможно ли, что объект контроллера просмотра освобождается/освобождается между двумя вызовами в NSLog?

+0

Не думайте так, потому что, поскольку это цепочка, если был выпущен контроллер вида, было бы все остальное, и я бы сказал, так как Subview имеет свой фон, установленный на красный – 2010-11-22 23:50:05

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