我正在从"Objective-objective编程"作者Kochan那里学习Objective-c.第3版.在第8章"继承"中,Kochan先生对该方法给出了以下解释:
-(void) setOrigin: (XYPoint *) pt
{
if (! origin)
origin = [[XYPoint alloc] init];
origin.x = pt.x;
origin.y = pt.y;
}
Run Code Online (Sandbox Code Playgroud)
" 该方法首先测试实例变量origin是否为非零(确保您理解该测试并使用逻辑否定运算符!已使用).回想一下,所有实例变量最初都设置为零.所以当一个新的Rectangle对象被分配,其实例变量(包括origin)将被设置为零.
如果原点为零,则setOrigin:方法将分配并初始化一个新的XYPoint对象,并在原点中存储对它的引用."
有逻辑错误吗?仅当原点不为零时,"setOrigin"方法才会分配新的XYPoint对象吗?
你的引述说:
如果原点为零,......
也就是说,当origin为零(nil),然后! origin将真实的,一个新的XYPoint将被分配.
我不认为这里存在逻辑上的不一致.
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |