gpt4 book ai didi

iphone - 将多个图像添加到哪种数组的最佳方法?

转载 作者:行者123 更新时间:2023-11-28 23:13:48 24 4
gpt4 key购买 nike

我正在为字母表中的所有字母创建可拖动的字母图 block 。如果一个单词需要多个相同的字母,我会为每个字母创建 5 个。

我在我的 MainViewControllers ViewDidLoad: 方法中以编程方式创建每个 UIImageView。

- (void)ViewDidLoad:
{
for (int i = 1; i <= 5; i++)
{
letterA = [[LetterTiles alloc] initWithFrame:CGRectMake(39, 104, 70, 70)];
[letterA setImage:[UIImage imageNamed:@"a.png"]];
letterA.tag = i;
[letterA setUserInteractionEnabled:YES];
[self.view addSubview:letterA];
[letterA release];

for (int i = 1; i <= 5; i++)
{
letterB = [[LetterTiles alloc] initWithFrame:CGRectMake(112, 104, 70, 70)];
[letterB setImage:[UIImage imageNamed:@"b.png"]];
letterB.tag = i;
[letterB setUserInteractionEnabled:YES];
[self.view addSubview:letterB];
[letterB release];
}

for (int i = 1; i <= 5; i++)
{
letterC = [[LetterTiles alloc] initWithFrame:CGRectMake(185, 104, 70, 70)];
[letterC setImage:[UIImage imageNamed:@"c.png"]];
letterC.tag = i;
[letterC setUserInteractionEnabled:YES];
[self.view addSubview:letterC];
[letterC release];
}
}

我有几个问题:

  1. 我应该为每个字母创建一个数组,还是为所有字母创建一个数组?

  2. 我应该使用哪种数组? NSMutableArray/NSArray 或 NSMutableDictionary/NSDictionary? -我一直在试图弄清楚如何将所有这些字母添加到上述所有数组类型,然后根据它们的字母和标签检索它们,但我终究无法弄清楚。有人愿意用代码中的一两个字母向我展示一个例子吗?

  3. 有没有比我在这里展示和询问的方法更好的方法?

最佳答案

问题一

对所有字母使用一个 NSArray 更好,它减少了您必须处理的变量数量。有这样的事情:

NSArray *arrayA;
NSArray *arrayB;
NSArray *arrayC;
...
NSArray *arrayZ;

只是一些代码可以在单个数据结构中轻松访问,更不用说,如果您计划添加数字、标点符号等,更容易更新。

问题2

Mutable 意味着它可以更新,所以重要的问题是,你的 Array/Dictionary 应该在运行时更新吗?如果答案是否定的,非可变数组可能会更好。另一方面,你必须自动用很多东西填充数组,所以拥有一个可变版本可能会让你拥有更清晰的代码(而不是拥有一个 [[NSArray alloc] initWithObjects:[UIImage imageNamed :@"A"], ...]).

所以我会选择可变版本,只是为了更清晰的代码。

问题3

这是个人选择,但我不太喜欢在静态类型语言中使用嵌套数据结构(在 python 中这样做是一种幸福,例如 myDictArray["key"][1])。我会使用由键组成的可变字典来存储相关数据:

NSString *key = [NSString stringWithFormat:"%c%d", letter, number]; // For example "J3" is the 3rd J letter.

另一方面,我不使用图像,而是使用大方形 UILabel,以节省内存(和精神健全,处理那么多图像,呃),并选择 iOS 使用的众多字体之一( Here's a complete list ).

有了这个,生成所有东西,将需要两个嵌套 for,一个遍历每个字母,然后每 5 次重复一个,然后创建标签并将其放入字典(我会编写代码,但我'我不在 Mac 上)。

关于iphone - 将多个图像添加到哪种数组的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7301197/

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