1

我正在创建一个需要有一个进度窗口的应用程序,我想在其中为每个正在处理的项目动态插入一个子视图,例如 Finder 的复制文件面板窗口。并且在处理完成时动态删除它。

我想对所有子视图使用相同的NSViewController视图,并且我正在使用NSStackView来管理视图。

但是,为了让子视图留在内存中,我必须保持对它们的强引用,而我知道的唯一方法是为我需要显示的每个子视图创建一个属性。像这样:

@propery (strong) NSViewController *myViewController1;
@propery (strong) NSViewController *myViewController2;
@propery (strong) NSViewController *myViewController3;
@propery (strong) NSViewController *myViewController4;
....

我想知道是否有更好,更动态的方式来做到这一点?或者我是否必须为子视图创建 x 个属性才能知道我有足够的实例来分配,因为我无法确定用户在运行应用程序和导出项目时需要多少进程视图。

因此,我想动态分配每个子视图并创建对它的强引用。那可能吗?还是有另一种方法可以做我想做的事?

如果我不清楚,请告诉我,我很乐意解释更多以获得有关此问题的帮助。

4

1 回答 1

1

您可以将视图控制器的引用存储在NSArray. 数组保持对它们包含的对象的强引用。

于 2015-04-03T23:00:56.077 回答