gpt4 book ai didi

objective-c - 访问可变数组值

转载 作者:行者123 更新时间:2023-12-03 18:06:26 25 4
gpt4 key购买 nike

我在 appdelegate 中创建了一个可变数组。我正在尝试在另一个应用程序中检索该可变数组的值。但那时它正在崩溃。下面是我在 appdelegate 中声明的代码:

savedLocation = [[NSMutableArray alloc] init];
savedLocation = [[NSMutableArray arrayWithObjects:
[NSNumber numberWithInteger:0],
nil] retain];

下面是我尝试通过 appdelegate 访问另一个应用程序中的数组值的代码:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSInteger selection = [[appDelegate.savedLocation objectAtIndex:0] integerValue];

但它崩溃于:

NSInteger 选择 = [[appDelegate.savedLocation objectAtIndex:0] integerValue];

请告诉我崩溃的原因以及执行此操作的正确方法。

最佳答案

如果您确实有 2 个不同的 Objective-C 应用程序在运行,请记住每个应用程序都有自己的 [UIApplication sharedApplication]。如果我正确理解您的问题,您假设您将能够使用此机制在应用程序之间传递信息,但事实并非如此。每个应用程序都有自己的sharedApplication和相应的应用程序委托(delegate),并且无法看到对方的成员。

由于您使用的是 UIApplication(而不是 NSApplication),我推断您正在使用 Cocoa Touch(适用于 iPhone 和 iPod Touch),因此您可能对可用的机制感兴趣用于在应用程序之间共享数据。有多种可能的方法,包括自定义 URL 处理程序(以允许一个应用程序使用某些特定参数启动另一个应用程序),或使用依赖于网络的同步机制,将两个应用程序的数据存储在某个共享服务器位置中。互联网。但是,您应该记住:

  1. 任何时候,Cocoa Touch 设备上都只能运行一个应用程序。因此,一旦实例化它们的应用程序退出(为其他应用程序让路),应用程序委托(delegate)的内存中成员变量就会被释放。

  2. 据我所知,一个 Cocoa Touch 应用程序无法读取另一个 Cocoa Touch 应用程序保存到设备上的数据。操作系统严格将设备上运行的所有单独应用程序放入沙箱中,因此一个应用程序无法读取另一个应用程序保存的数据。

This question与我认为您要问的类似。

关于objective-c - 访问可变数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1781591/

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