2012-02-23 100 views
1

这可能是一个非常简单的问题。我在一个sql lite db中有一堆东西。我可以检索这些东西,并将其存储到数组中。当我遍历该数组与for (MyCustomMo *mo in myDataArray)我可以访问托管对象属性很好,例如, mo.name。当我得到同样的数组的对象与[myDataArray objectAtIndex:index]我得到一个MyCustomMoCore Data Managed Object属性返回null

到目前为止,一切工作正常,但是......

后来*但是当我尝试访问该对象,我得到空的属性。我需要以不同方式使用[myDataArray objectAtIndex]吗?

+0

您是否尝试强制保留该对象?它可能发生,对象从内存中以某种方式释放 – holographix 2012-02-23 11:13:35

+0

“稍后”有多少?同时发生了什么?如果记录第二次从阵列中出来的对象的值,你会看到什么? – jrturton 2012-02-23 11:14:48

+0

@holographix如果有问题,我正在使用ARC。我现在没有手头的代码,对不起。 – JHollanti 2012-02-23 11:17:14

回答

5

好吧,我明白了。它不工作的原因是'因为我在viewDidLoad中使用本地ManagedObjectContext。我没有想到,ManagedObject需要延迟加载属性时才需要ManagedObjectContext。

+0

感谢您回来并分享您的解决方案。我没有意识到CoreData中的延迟加载,现在我的类似问题的解决方案似乎非常明显! – Dermot 2013-10-21 02:09:13

+0

我的荣幸:)很高兴它对某人有用。 – JHollanti 2013-11-03 18:15:21