objective-c - 在 [[alloc] init] 之外调用 [init] 是否有意义?

标签 objective-c oop

我想知道 [[alloc] init] 是否只是一个约定,或者将两个调用分开是否有更广泛的用途。例如,我想知道人们是否曾在现有对象上调用 [init](或 friend )以“重新初始化”它。

最佳答案

惯例是永远不要重新初始化对象。您可以在自己的子类 NSObject(或定义一个新根)的类中以极其有限的方式这样做,但您永远不应该对系统框架中任何其他类的子类这样做。

如果你想“重用”一个类的实例,那么提供超出指定初始化器重用的方法。 IE。你可以这样做:

- (void) reset;

或者:

- (void) resetWithNewState: (MyState *) aState;

关于objective-c - 在 [[alloc] init] 之外调用 [init] 是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2752672/

相关文章:

iphone - 第五行的 UITableViewCell : How do I update textLabel. 文本?

javascript - JavaScript 中的组合、继承和聚合

Java 设计问题 : Enforce method call sequence

java - split vector

java - 避免空值、不变性、对象状态

c++ - Box2d反重力问题

iOS Storyboard 有条件地显示 View

ios - 如何判断 UITextView 脏了?

iphone - 无法在 UIPageViewController 中实现 UITextview

oop - 函数式编程与面向对象编程