【发布时间】:2012-12-13 23:26:28
【问题描述】:
假设我有一个采用 CLLocationCoordinate2D 的方法。我不能在代码中直接将 nil 传递给它;编译器抱怨。但是,以下编译。那么运行时会发生什么?
CLLocation* loc = nil;
[self passMeCoordinates:loc.coordinate];
【问题讨论】:
-
它可能会被悄悄地忽略,它可能会导致我们所知的宇宙终结。基本上,除非以某种方式记录在案,否则它是“未定义的行为”。
-
当然,“坐标”是一个属性,所以会使用空指针进行调用,返回零。编译器可能会尝试从位置 0 复制位置坐标结构,您会收到存储错误。
-
@HotLicks 过去是结果未定义,但最近似乎发生了变化。 (见下面我的回答。)
标签: iphone objective-c ios location cllocationmanager