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 8752113
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T13:10:24+00:00 2026-06-13T13:10:24+00:00

NOTE: Perhaps this question could be answered by a pure Objective-C expert as well?

  • 0

NOTE: Perhaps this question could be answered by a pure Objective-C expert as well? I work primarily in MonoTouch, but I think this problem may not be MonoTouch-specific.

Typically when the Assistant Editor in XCode won’t show my .h file, I just close everything, delete my obj directory, and rebuild all. I wait for the Indexing process to complete. But this time I really can’t get the .h file to show up, and thus I’m unable to add any new outlets to my FooViewController.

So far, I’ve tracked it down to an empty IBClassDescriber element in my FooViewController.xib

<object class="IBClassDescriber" key="IBDocument.Classes"/>

which should look something more like:

<object class="IBClassDescriber" key="IBDocument.Classes">
        <array class="NSMutableArray" key="referencedPartialClassDescriptions">
                <object class="IBPartialClassDescription">
                        <string key="className">FooViewController</string>
                        <string key="superclassName">UIViewController</string>
                        <dictionary class="NSMutableDictionary" key="outlets">
                            ...
                        </dictionary>
                        <dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
                            ...
                        </dictionary>
                        <object class="IBClassDescriptionSource" key="sourceIdentifier">
                                <string key="majorKey">IBProjectSource</string>
                                <string key="minorKey">./Classes/FooViewController.h</string>
                        </object>
                </object>
        </array>
</object>

which has the link to the .h file in the minorKey of IBClassDescriptionSource.

I’ve tried cleaning my project, closing all my apps and deleting the obj and bin directories. I’ve tried renaming the file (along with the above). And other various sporadic cursing and deleting/reverting/and banging things loudly. To no avail.

Anyone know how to recover the IBClassDescriber element once it’s been emptied?

I’m going to have a look back through the file history and see when it disappeared. Maybe that’ll give me a clue.

Thanks!
CM

  • 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-06-13T13:10:25+00:00Added an answer on June 13, 2026 at 1:10 pm

    So this scenario came about (like other people have done) when I had renamed my ViewController file and failed to update all references to the old name. There are several places the name of the view controller needs to change, but there are really only 2 critical places that need to match to get XCode and MonoDevelop in synch. For this example, assume I had a view controller named FooViewController and had renamed it to BarViewController.

    First, every time you launch XCode (XC), MonoDevelop (MD) creates a temporary directory named obj/XCode/# where # starts at 0 and increments by one every time you re-launch XC. The number resets to 0 every time you restart MD. Every time you close XC and return to MD, the directory will be deleted.

    NOTE: the directory will NOT be deleted if you are browsing the directory from Finder or Terminal, etc.

    MD creates the required .h and .m files in that directory that XC expects to see. The names of these files are based on the value if the Register attribute in YourViewController.designer.cs. In my case, I had properly updated the .designer file to:

    [Register ("BarViewController")]
    

    Now when I open the .xib I get the dreaded No Assistant Results error.

    At this point, my .xib file, when opened in the Source Code Editor of MD, showed a full IBClassDescriber section (though improperly referencing ./Classes/FooViewController.h since I hadn’t updated it yet).

    What I did next was to save the .xib from XC. Since XC could not find ./Classes/FooViewController.h (MD was now generating BarViewController.h), it deleted the IBClassDescriber section from the .xib, giving me an empty entity

    <object class="IBClassDescriber" key="IBDocument.Classes"/>
    

    I had failed to update the .xib properly, now I had lost this entire section (which had numerous references that I didn’t want or know how to recreate).

    The key to fixing this was noticing that the -1.CustomClassname property in the .xib was set incorrectly. Updating it to match the Register setting

    <dictionary class="NSMutableDictionary" key="flattenedProperties">
        <string key="-1.CustomClassName">BarViewController</string>
        ...
    </dictionary>
    

    and re-saving the file resulted in XC recreating the entire IBClassDescriber section with proper references to the .h file

    <object class="IBClassDescriber" key="IBDocument.Classes">
            <array class="NSMutableArray" key="referencedPartialClassDescriptions">
                    <object class="IBPartialClassDescription">
                            <string key="className">BarViewController</string>
                            <string key="superclassName">UIViewController</string>
                            <object class="NSMutableDictionary" key="outlets">
                                ...
                            </object>
                            <object class="NSMutableDictionary" key="toOneOutletInfosByName">
                                ...
                            </object>
                            <object class="IBClassDescriptionSource" key="sourceIdentifier">
                                    <string key="majorKey">IBProjectSource</string>
                                    <string key="minorKey">./Classes/BarViewController.h</string>
                            </object>
                    </object>
            </array>
    </object>
    

    So in summary, when you’re renaming files, the places to change are:

    1. Refactor/Rename your main ViewController class (e.g. FooViewController.cs to BarViewControllercs. Using Refactor (right click class file -> refactor -> rename) will update lots of stuff for you, including the .designer file and any references to the class throughout your code
    2. Change the string value passed to the superclass in your ViewController constructor public GrepViewController () : base ("BarViewController", null) which is required for loading the class at runtime
    3. Open your .designer file and change the Register call so that the link between XC and MD is maintained: [Register ("BarViewController")] partial class BarViewController
    4. Rename the .xib: BarViewController.xib
    5. Open BarViewController.xib in MD with source editor (right click -> open with -> Source Code Editor) and change the -1.CustomClassName key: <string key="-1.CustomClassName">BarViewController</string>
    6. Save the .xib from MD
    7. Open BarViewController.xib in XC. (If you’ve got it open in MD, you’ll need to right click -> Open With -> XCode). Wait for indexing to complete, then open the Assistant Editor. Notice that BarViewController.h is (correctly) opened.
    8. Save the .xib from XC.
    9. Open the .xib in MD and notice that IBClassDescriber section is fully specified, even if it was empty to start with.

    Ship it!

    Hope this helps someone, clears up some mystery of the linkage between XC and MD, or at least reminds me what to do next time I run into this problem.

    Cheers,
    CM

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

[I am doing this work in Java, but I think the question is language-agnostic.]
I have a feeling that this is a subjective question, but perhaps there's something
Note, this might perhaps be best suited on serverfault.com, but since it is about
Note, this is not a duplicate of .prop() vs .attr() ; that question refers
(Note: This is not a question about what is the best way with code
NOTE: This is a followup to my question here. I have a program that
NOTE: This is an old question and the answers here no longer works (since
Note: I understand this is not strictly about development, but in the earlier threads
UPDATE: Perhaps this wasn't clear from my original post, but I'm mainly interested in
NOTE: This is a long question. I've explained all the 'basics' at the top

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.