Mon*_*olo 4 cocoa cocoa-touch objective-c init nsobject
在将一个编码非常糟糕的iOS项目移植到OS X的过程中,我在其中保留了模型层,以便(稍后)能够保持两个版本同步.
我目前无权更改iOS代码库 - 也不特别想要.此外,对于所有故障,模型层都经过测试和工作.
他们说,如果没有破产,就不要修理它.所以我想我的问题是,是下面的代码破坏或没有?注意,init之后没有调用alloc,并且实例化的类是直接子类NSObject.
...
SuspectClass *obj = [SuspectClass alloc];
obj.arrayProperty = [NSArray arrayWith...];
// etc.
...
Run Code Online (Sandbox Code Playgroud)
我想另一个办法把问题是,如果NSObject的init实际上增加了什么对象?
从initNSObject 的文档中可以得到官方的答案:"在初始化对象之前,它还没有准备好使用."
...和实际答案:"NSObject类中定义的init方法不进行初始化;它只返回self."
:-)
虽然有功能,但我不认为我会相信一个裸露alloc的地方,因为有许多地方警告某些形式init是必需的.
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |