0

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

4

1 回答 1

3

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

于 2012-07-24T01:56:23.300 回答