Programming is Learning

There are just three characters different between the two methods below.

- (BOOL)instantiateWithOwner:(id)owner topLevelObjects:(NSArray **)topLevelObjects

- (BOOL)instantiateNibWithOwner:(id)owner topLevelObjects:(NSArray **)topLevelObjects

One is OS X 10.7 compatible.
One is not.

One will retain strong references.
One will not.

One is deprecated in OS X 10.10.
One is not.

Those are pretty important differences, but if you were building with the Mac OS X 10.9 SDK, as I was this past summer, there are no warnings generated if you mistype those three characters since both methods were completely valid.

I’m not really sure which is which, even right now. But I am certain I chose the wrong one last summer.

Programming is learning. Mostly the hard way, though.