ARC seems to be releasing the view of my NSViewController

后端 未结 2 1066
借酒劲吻你
借酒劲吻你 2021-01-28 06:11

I am trying to solve a larger problem and I am tipping on the fact that ARC apparently is releasing the view to my NSViewController too early. I think :) So I created a simple a

相关标签:
2条回答
  • 2021-01-28 06:52

    You need to add an ivar or property to hold the TextViewController. Currently, the only reference to it is going away at the end of applicationDidFinishLaunching: which causes it to be deallocated.

    That's bad, because your button needs the controller to be around to handle the button press. The view doesn't hold on to it's controller, as that would cause a retain cycle. So you are responsible for keeping the controller around if you don't want your button talking to a deallocated object.

    0 讨论(0)
  • 2021-01-28 07:02

    Add a property to hold the view controller. Your controller currently has nothing to keep it alive past the end of the method that allocates it.

    Add:

    @property (strong) TestViewController *tvc;
    

    Modify:

    self.tvc =  [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
    

    (I'm curious...what do you see as the point of creating a view controller if all you want is the view it contains?)


    Concerning the general approach, it seems that this is more properly behavior that should be implemented using a container view controller. That mechanism allows multiple view controllers to share the screen in an organized way.

    0 讨论(0)
提交回复
热议问题