Objective-C - 将ViewController设置为另一个Class的委托的正确过程

时间:2011-08-02 09:47:59

标签: objective-c delegates uiviewcontroller

假设我有一个View Controller和一个Model类; ViewControllerModel

Model我的方法如下:

[object setDelegate:self]

相反,我希望ViewController充当委托。我将如何以及在哪里这样做?

我应该在模型的alloc方法中init- init我的ViewController:

ViewController *newVc = [[ViewController alloc] init];
[self setVc:newVc]; // retains newVc
[newVc release];

然后做:

[object setDelegate:[self vc]];

请注意一下。

1 个答案:

答案 0 :(得分:0)

你可以这样做,但是如果 object 是你的模型你可能有循环引用的问题,你有模型保留viewController和viewController保留你的模型,也不会到那里调用dealloc方法释放另一个。我会查看使用通知,您的视图控制器可以直接连接到您的模型,但您的模型可以向任何关心的人广播更改,您查看控制器然后可以观察您模型的通知。我通常认为我的模型代码应该能够在任何界面上运行,即使是作为命令行程序。