tableView:cellForRowAtIndexPath:没有调用因为数组是空的?

时间:2012-07-24 01:50:21

标签: objective-c ios uitableview strongly-typed-dataset weak-references

我的tableView未加载,因为未调用tableView:cellForRowAtIndexPath:。我在NSLog中写的tableView:cellForRowAtIndexPath:消息没有出现在控制台中。我有一个名为listOfItems的weak NSArray @property。当我将其更改为strong时,tableView最终显示了它的内容。如果tableView:cellForRowAtIndexPath:没有被调用,有人可以澄清,因为NSArray很弱。 listOfItems属性和被调用的tableView:cellForRowAtIndexPath:方法之间是否存在连接?

1 个答案:

答案 0 :(得分:3)

没有对象强烈引用该数组。您的视图控制器有一个参考,但它不强。这意味着你不关心它是否从内存中删除,你不需要它留下来。在这种情况下,由于您的表依赖于数组中的数据,因此您不希望将其从内存中删除:只要表保持不变,您就希望它保持不变。为此,您需要创建一个强引用,以确保该对象不会从内存中删除,直到指针(在这种情况下,您的属性)不再指向它。< / p>