Not*_*ley 3 oop initialization objective-c
在一个方法中编写一些Objective-C,我调用+alloc,然后-init设置一个对象.
object = [[MyClass alloc] init];
[object useFor:whatever];
Run Code Online (Sandbox Code Playgroud)
接下来的几行代码使用新创建的对象.如果前面提到的-init时间太长,我确定程序在开始使用新对象之前不会"等待",是吗?如果没有,是否有快速确保-init完成的方法?
我有时会看到编写程序的程序员
if(object = [[MyClass alloc] init]) {
[object useFor:whatever];
}
Run Code Online (Sandbox Code Playgroud)
这是我应该去做的吗?
当你调用init程序时,程序将不会继续到下一行,直到init方法返回.到达第二行时,init方法已完成.它可能没有成功完成,但它已经完成.
第二种形式是测试.首先if语句调用该init方法.如果返回有效对象,则测试为true,然后执行下一个语句.这就是为什么你看到init方法self在成功时和nil出现问题时返回的原因; 这样可以运行这些测试,以确保在继续之前已成功初始化对象.