0

我的应用需要一个二维查找表。我想尽可能简单地做到这一点,所以我只是制作了一系列数组,然后在需要时调用该数组中的适当数组和位置。但是,这需要大约 500 个数组......这是一个代码片段:

 NSArray *key_1 = [[NSArray alloc] initWithObjects:@"1",@"0.5038",@"0.8054",@"4.51",nil];
 NSArray *key_2 = [[NSArray alloc] initWithObjects:@"1",@"0.4869",@"0.8009",@"4.7",nil];
 NSArray *key_3 = [[NSArray alloc] initWithObjects:@"1",@"0.4708",@"0.7967",@"4.9",nil];
 NSArray *key_4 = [[NSArray alloc] initWithObjects:@"1",@"0.4554",@"0.7926",@"5.09",nil];
 NSArray *key_5 = [[NSArray alloc] initWithObjects:@"1",@"0.4407",@"0.7889",@"5.27",nil];
 NSArray *key_6 = [[NSArray alloc] initWithObjects:@"1",@"0.426",@"0.7853",@"5.46",nil];
 NSArray *key_7 = [[NSArray alloc] initWithObjects:@"1",@"0.4133",@"0.7819",@"5.65",nil];

但是,我有两个担忧。首先,如果这 500 个数组声明导致应用程序暂时挂起,我应该把这段代码放在哪里,以便它在首次启动时仍在应用程序的启动屏幕上执行?那会在viewWillAppear吗?

其次(这可能是一个新问题),如果我将这些数组声明viewWillAppear或其他方法放在我的 FirstViewController.m 中,我怎样才能让我的 SecondViewController.m 中的方法可以访问它们?

谢谢!

4

1 回答 1

0

所以你有两个选择

第一:您可以在不同的线程上加载这些数组(而不是在主线程上)。您可以使用 GCD 创建一个新线程并将这些数组作为块传递给处理。通过这样做,您可以解决您的第一个问题“暂时挂起”。

第二:正如 Mrunal 提到的“尝试为此使用 plist 文件。以字典格式(键值)将数据写入其中。并使用特定键仅获取所需的数据。”

我喜欢选项二,但如果你有动态数组,请使用选项一。

于 2013-07-11T14:40:12.490 回答