我不完全确定这是否是发布这个的正确位置,因为我发现这个问题比我要问的问题更多。 (虽然如果有人能解释为什么会发生这种情况,我会非常感兴趣。)
所以在我的Swift iOS应用程序中,我不得不使用Objective-C Arrays进行排序。我知道名为NSMutableArray
的{{1}}只包含results
个事实。因此,排序后我将其转换为MyObject
,将其保存在变量[MyObject]
中。
myArrayVar : [MyObject]
这在上工作正常,直到我在发布版上测试它。它崩溃了。我必须做的就是修复崩溃:
myArrayVar = (results as NSArray) as [MyObject]
现在我们可以看到当版本出错时这个版本不会崩溃而第一个版本就会崩溃。但是,演员不会出错,因为我可以通过永远不会看到日志消息进行验证。 那么这两个版本的类型转换在运行时可能有什么不同呢?无论是什么,我都觉得这也可能是其他人的陷阱。