2016-06-21 46 views
1

我的应用程序逐行读取文本文件,将数据复制到Card对象的数组中,然后为每个对象创建SceneKit节点。一些Card可以修改或更改早期行上的数据的迭代副本,因此行号与SCNNode之间不存在1:1的对应关系。SCNNode的名称,对独特值的建议?

我试图想出一种方法,我可以在创建节点时唯一命名节点,以便我可以使用childNodeWithName(_:recursively:)来查找它们。例如,在数组中使用Card的索引是无用的,因为这可能会改变 - 例如,用户可能会添加或删除对象或对其进行重新排序。

在我可以访问的Card(或任何)对象本身上是否存在某种唯一ID或散列?

回答

1

您的问题的答案取决于Card表示什么,并且完全独立于SceneKit。我想你应该找到一个散列函数,它适用于Card中的内容,或者你可以简单地将NSUUID存储在Card的初始化程序中。

+0

NSUUID听起来像我正在寻找的解决方案。这些搜索相对有效吗? –

+0

好吧,如果您使用'childNodeWithName(_:递归:)'性能成本将永远是相同的。你正在比较字符串和你如何生成它们(在你的情况下'NSUUID.UUIDString')并不重要 – mnuages

+0

好点!现在实施... –