1

可能重复:
objective-c 中强弱的区别

假设我有一个显示模型对象数据的表格视图。如果我在我的 UITableViewController 中声明...

@property (strong, nonatomic) NSArray *modelObject;

如果我将此数组传递给 segue 中的另一个视图控制器属性,是否应该weak在我的目标视图控制器中声明它?

4

1 回答 1

1

在这种特定情况下,任何一个都应该工作。

strong如果该属性可以保持strong对引用对象的循环引用,则会出现问题。我想这是一种可能性,但是假设控制器不被视为数据,这不太可能。由于您的初始控制器将在目标控制器的生命周期内保留并保持strong引用,因此在目标中拥有一个weak属性也应该没问题。

我可能会选择的一个原因strong是,随着应用程序的发展,可以防止出现问题。如果目的地有可能有一天会modelObject从其他来源收到它,你会记住提供者必须有一个强有力的参考吗?

于 2012-12-04T17:25:51.440 回答