卡尔是正确的。
本质上,如果一个对象是从 XIB 实例化的(按照您在问题中提到的步骤),那么被调用的初始化程序是
- (id)initWithCoder:(NSCoder *)aDecoder;
You can confirm this for yourself by over-riding every possible initialiser and putting breakpoints in all of them to see which is called.
So, If you are initialising from the XIB it kind of hints that you will have one instance of that object (not necessarily so); however if you need lots of instances of a custom object then you might consider going back to a custom initialiser and forgo the XIB work by creating everything programatically.
In essence, Think how you are going to be using the object. This will tell you if you need to be thinking of custom initialisers that create their own view programatically.