Objective-C-交换时卸载加载的视图

Objective-C-交换时卸载加载的视图,objective-c,cocoa,Objective C,Cocoa,在多视图应用程序中执行视图管理的最佳方法是什么 现在我有一个ViewSwitcher方法/函数,它来自我创建的自定义委托 代码是一大堆的if-else,像这样 MyViewController *c = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; c.delegate = self; self.myViewController = c; [self.view

在多视图应用程序中执行视图管理的最佳方法是什么

现在我有一个ViewSwitcher方法/函数,它来自我创建的自定义委托

代码是一大堆的if-else,像这样

    MyViewController *c = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
    c.delegate = self;
    self.myViewController = c;

    [self.viewHolder insertSubview:c.view atIndex:0];
    [c release];
这很好,但是当我第二次访问该函数时,MyViewController的实例是现在有2个还是只有1个? 切换到其他视图时如何卸载MyViewController

还是有更好的方法来管理我的观点

谢谢,
Tee

如果self.myViewController是一个保留属性,则在此行之前将有两个myViewController实例:

self.myViewController = c;

。。。此时,合成的访问器将释放在第一个过程中创建的实例,然后保留新创建的实例。如果第一个实例没有被另一个对象保留,它将取消分配

myViewController是如何声明的?[c]是否释放;属于上面的片段吗?啊,是的,[c版本];这是放错地方了。刚刚解决了这个问题。myViewController是使用@property retain完成的,在头中是非原子的,在实现中是@Synthesis。Thx,T型