gpt4 book ai didi

iPhone 编程 - 在 View Controller 之间传递 NSMutableArray

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:54 27 4
gpt4 key购买 nike

我有一个 RootViewController 和一个 DetailViewController,我试图将 NSMutableArray 从 rootView 传递到 detailView。我在 DetailViewController 中创建了一个 RootViewController 对象,并像下面这样访问它

RootViewController *root = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];

detailViewArray = [root.rootViewArray copy];

注意:两个数组都在 .h 文件中声明;合成然后分配和初始化 array = [[NSMutableArray alloc] init];

问题:我不太清楚为什么它仍然不起作用。我已经在互联网上尝试了很多解决方案,但对我来说不太管用。根数组的属性是 nonatomic, retain 这有什么问题吗?我是否需要将其更改为某些内容或我遵循的方法不正确..如果有人可以提供帮助,请!

最佳答案

如果您在 DetailViewController 中分配/初始化 RootViewController,则您正在创建 RootViewController 的另一个实例。您没有获得 rootViewController 的相同实例(带有数据)。

就是说,即使将一个 viewController 的引用传递给另一个 viewController 然后查看它的数据也有点糟糕。它在 View 之间创建了紧密耦合。

相反,如果您需要获取数据,请考虑使用委托(delegate)在 View 之间进行通信。

What exactly does delegate do in xcode ios project?

教程:

http://www.theappcodeblog.com/2011/04/15/passing-data-between-views-tutorial-using-a-protocol-delegate-in-your-iphone-app/

另一种选择是创建共享模型(阅读 Model View Controller 模式)。在该模式中,通常通过获取模型的单例实例来创建模型和共享数据:

MyModel *model = [MyModel sharedInstance];

然后,每个 View 都可以设置模型的同一个(单例)实例并从中读取数据。

选择哪个?如果许多 View 共享相同的数据,则该模型会更好。委托(delegate)适合几个 View 通过回调与每个 View 进行通信。

关于iPhone 编程 - 在 View Controller 之间传递 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8130191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com