Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 558225
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T12:06:34+00:00 2026-05-13T12:06:34+00:00

I’m trying to implement my own version of NSViewController (for backwards compatibility), and I’ve

  • 0

I’m trying to implement my own version of NSViewController (for backwards compatibility), and I’ve hit a problem with bindings: Since bindings retain their target, I have a retain circle whenever I bind through File’s owner.

So I thought I’d just explicitly remove my view from its superview and release the top level objects, and that would take care of the bindings, because my controller isn’t holding on to the views anymore, so they release me and I can go away. But for some reason, my view controller still doesn’t get released. Here’s a sample app exhibiting the problem:

http://dl.dropbox.com/u/34351/BindingsLeak.zip

Build it, launch it, and hit Cmd-K (“Create Nib” in “Edit” menu) to load a NIB into the empty window. Hit Cmd-K again to release the first view controller (TestNibOwner) and load a new one. The old view controller never gets dealloced, though.

Remove the “value” binding on the checkbox, and it gets released just fine.

If you set breakpoints at the release/retain/autorelease overrides, you see that _NSBindingInfo retains the TestNibOwner, but never releases it in the leaking case.

Anyone know how to fix this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T12:06:34+00:00Added an answer on May 13, 2026 at 12:06 pm

    One thing I’ve done for the same problem is to create a proxy NSObjectController inside my nib. My NSViewController-like class has a pointer to this proxy and all bindings are bound through it. When I want to cleanup the view controller, I then do [selfProxy setContent:nil] on the object controller and release the view controller. In this instance the NSObjectController proxy acts as the auto-unbinder in this case.

    It’s more manual and you can’t just release the view by itself, but it does solve the retain problem.

    I’d suggest you do this:

    -(void) releaseTopLevelObjects
    {
        // Unbind the object controller's content by setting it to nil.
        [selfProxy setContent:nil];
    
        NSLog( @"topLevelObjects = %@", topLevelObjects );
        [topLevelObjects release];
        topLevelObjects = nil;
    }
    

    In your nib, bindings would happen through a path like:

    selfProxy.content.representedObject.fooValue
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.