Also, to comment on Jean's point stating that he thought this behaviour was introduced in Mac OS 10.10, I fired up the Wayback Machine and ye good olde Xcode 4.2.
In it, I'm able to select the foundation classes as old as iOS 4.3 and the header file for the UIViewController class has exactly the same text, but it starts at line 111, not 101, so this is pretty core and established behavior since at least 2010. Now, if I could only find the method that it uses to actually load the xib, that would be perfect. Thanks all. On Feb 5, 2016, at 3:58 PM, Alex Zavatone wrote: > AHA! > > THANK YOU. > > The exact docs I was looking for are directly in the header for > UIViewController starting at line 101 > > /* > The designated initializer. If you subclass UIViewController, you must call > the super implementation of this > method, even if you aren't using a NIB. (As a convenience, the default > init method will do this for you, > and specify nil for both of this methods arguments.) In the specified NIB, > the File's Owner proxy should > have its class set to your view controller subclass, with the view outlet > connected to the main view. If you > invoke this method with a nil nib name, then this class' -loadView method > will attempt to load a NIB whose > name is the same as your view controller's class. If no such NIB in fact > exists then you must either call > -setView: before -view is invoked, or override the -loadView method to set > up your views programatically. > */ > > > > On Feb 5, 2016, at 2:51 PM, Jim Ingham wrote: > >> >>> On Feb 5, 2016, at 11:39 AM, Jean-Daniel Dupas <mail...@xenonium.com> wrote: >>> >>>> >>>> Le 5 févr. 2016 à 19:28, Alex Zavatone <z...@mac.com> a écrit : >>>> >>>> I seem to recall back circa last century in Xcode 3.1.3 that when a view >>>> controller was instantiated that part of the loading/bootstrapping of the >>>> view controller was that it would automatically look for an XIB of the >>>> same name as the viewController and load that on the Mac OS. >>> >>> Strange your recall that. It is documented as working since 10.10 (which >>> did not exists at the time Xcode 3.1.3 was the standard): >>> >>> From -[NSViewController loadView] header documentation. >>> >>> Prior to 10.10, -loadView would not have well defined behavior if [self >>> nibName] returned nil. On 10.10 and later, if nibName is nil, >>> NSViewController will automatically try to load a nib with the same name as >>> the classname. This allows a convenience of doing [[MyViewController alloc] >>> init] (which has a nil nibName) and having it automatically load a nib with >>> the name "MyViewController". >>> >>> >>>> On iOS, I recall that it would look for a xib of the same name as the view >>>> controller for the iPhone and then it would look for an xib with the same >>>> name of the view controller and "~iPhone.xib" and it would automatically >>>> look for an xib that was the same name of the view controller + >>>> "~iPad.xib". >>>> >>>> Now, I can't seem to find any of the docs that mentioned this and I'm >>>> trying to verify this functionality and where it is called from by >>>> stepping through the debugger at the view controller's initialization. >>>> >>>> This is where I need some help. >>> >>> I think the magic append in -loadView, so you should break on the loadView >>> method. >>> >>> Honestly, I never managed to get the exact selector patter right when >>> trying to set a breakpoint, so I usually use a regex breakpoint. In the >>> lldb console type: >>> >>> b -r loadView >> >> If you want to break on all instances of a selector in lldb you can also say: >> >> (lldb) break set -S loadView >> >> Jim >> >> >>> >>> >>>> I'm looking for effective ways of either setting a breakpoint on keywords >>>> or internal classes that would indicate where this happens so I can >>>> explain how and where this happens to the rest of the team. >>>> >>>> Are there any techniques in using the debugger that would help in this >>>> effort? >>>> >>>> Are there any recommended classes in the framework where setting >>>> breakpoints on the headers would be useful? >>>> >>>> Would it make sense to add methods from super to my view controller that >>>> are part of the init process that would shed some light on this? >>>> >>>> I'm not seeing a breakdown of the VC initialization process and methods >>>> called in the VC programming guide or the class reference. >>>> >>>> Are there any better places to look? Is there an clear method to set a >>>> breakpoint when an XIB is loaded? I've tried setting breakpoints in the >>>> bundle class's load method to no avail. >>>> >>>> Thanks for pointing me to the right direction. >>>> >>>> Alex Zavatone >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Xcode-users mailing list (Xcode-users@lists.apple.com) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/xcode-users/mailing%40xenonium.com >>>> >>>> This email sent to mail...@xenonium.com >>> >>> _______________________________________________ >>> Do not post admin requests to the list. They will be ignored. >>> Xcode-users mailing list (Xcode-users@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/xcode-users/jingham%40apple.com >>> >>> This email sent to jing...@apple.com >> > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Xcode-users mailing list (Xcode-users@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/xcode-users/zav%40mac.com > > This email sent to z...@mac.com
_______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list (Xcode-users@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com This email sent to arch...@mail-archive.com