пункт 1 в делегат:Почему экземпляр ViewController был выпущен, когда его представление все еще находится в списке подпрограмм другого представления?
self.friendListVC = [[FriendListVC alloc] init];
пункт 2. в FriendCollectionVC.mm:
- (void)viewDidLoad
{
[super viewDidLoad];
FriendCollectionVC *friendCollectionVC = [[FriendCollectionVC alloc] init];
[self.view addSubview:friendCollectionVC.view];
}
пункт 3. пробег: использование lldb:
po [self collectionView].delegate
p [self collectionView]
результат: [нет описания Objective-C] (PSTCollectionView *) $ 6 = 0x212bc400
пункт 4. продолжить работать. использование lldb:
po [self collectionView].delegate
p [self collectionView]
результат:
2013-11-30 00:15:25.637 App[45683:70b] *** -[FriendCollectionVC respondsToSelector:]: message sent to deallocated instance 0x67259eb0
[no Objective-C description available]
(PSTCollectionView *) $6 = 0x6785eca0
и использовать lldb одновременно:
po ((MyAppDelegate *)[[UIApplication sharedApplication] delegate]).friendListVC.view
<UIView: 0x6656efa0; frame = (0 0; 945 748); autoresize = W+H; layer = <CALayer: 0x665d0fd0>>
точка 5. Вопрос: Почему friendCollectionVC внутри FriendListVC был выпущен? Доступны приложения AppDelegate и AppDelegate.friendListVC и AppDelegate.friendListVC.view. ДругListVC.view содержит subview friendCollectionVC.view. - см. код 2. И проект использует ARC.
Вы добавили self.friendListVC = [[FriendListVC alloc] init]; к супервизу? Вы что-то сделали с ним, кроме как из [[alloc] init]? – Greg