|
|
1
6
表示初始化对象时出错是一个常见的习惯用法。您是正确的,但是必须释放分配的实例。所以模式是
|
|
|
2
0
见 using alloc and init 有关init方法的更多问题和答案。
也接受参数的init方法(例如:
|
|
|
3
0
关于这个主题的两个后续问题,我还没有看到确切的答案——现在在它自己的问题中重复, Followup to returning nil from a [[class alloc] init] 1:如果一个init在调用super之前有一些先决条件失败,该怎么办?例如,假设在这个initWithStuff中:方法被传递为nil,或者通常没有值传递给initWithValue:是一个绝对失败,我们肯定希望返回nil。
也许一个更清楚的例子是,如果我们包装的指定初始值设定项方法使用对象指针,并且如果传递了nil,则抛出异常。我们肯定需要将引发异常的init调用短路。 我的猜测是:以任何可能的方式初始化,然后在返回零之前释放自我。如有必要,调用bare init或任何其他初始值设定项,以在释放自我之前完成将其置于已知状态。
如果没有有效数据,就没有这样的初始值设定项可以工作,我想我们需要构造一些有效的虚拟数据。或者向作者抱怨,直到那时候,只需把零还给作者,就可以忍受泄漏:^) 2:ARC是如何影响情况的? 我的猜测是:无论如何都要完成init,然后返回nil。你可能会认为自我设置是多余的,但在某些情况下不是。在任何情况下,它都需要存在才能使编译器警告静音。
|
|
|
KanKonga · 为什么这个swift代码没有显示在文本字段中? 2 年前 |
|
|
Community wiki · 目标的Xcode构建阶段的自动更新? 2 年前 |
|
|
Anton Timonin · 如何正确地将动态pod库更改为静态? 2 年前 |
|
|
Igor · 在OSX中,捆绑包的用户首选项在哪里? 2 年前 |
|
|
narner · 从Swift包创建Cocoapods框架 2 年前 |