首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标C提示?

目标C提示?
EN

Stack Overflow用户
提问于 2010-12-06 03:59:10
回答 4查看 171关注 0票数 0

我想替换这个:

代码语言:javascript
复制
self.fajerImage     = [UIImage imageNamed:@"FirstViewBG_5N.png"];
self.shrogImage     = [UIImage imageNamed:@"FirstViewBG_4N.png"];
self.dohorImage     = [UIImage imageNamed:@"FirstViewBG_3N.png"];
self.aaserImage     = [UIImage imageNamed:@"FirstViewBG_2N.png"];
self.mgribImage     = [UIImage imageNamed:@"FirstViewBG_1N.png"];
self.eeshaImage     = [UIImage imageNamed:@"FirstViewBG_0N.png"];

使用for循环..我不知道如何在循环中一个接一个地调用依瓦尔。

请注意,将它们放在循环之前的数组中是一个很好的想法,但我没有成功地实现..

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-06 04:02:57

正如this blog post中所讨论的,实现这一点的一个很好的方法是使用key value coding。尝试使用:

代码语言:javascript
复制
NSArray *nameArray = [[NSArray alloc] initWithObjects:@"fajerImage",
                                                     @"shrogImage",
                                                     @"dohorImage",
                                                     @"aaserImage",
                                                     @"mgribImage",
                                                     @"eeshaImage",
                                                     nil];

int i = 0;
for (NSString *name in nameArray) {
    UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"FirstViewBG_%dN.png", i++]];
    [self setValue:image forKey:name];
}

[nameArray release];

(如果我理解错了,您应该将上面代码中的UIImage替换为实际的对象类型。)

票数 6
EN

Stack Overflow用户

发布于 2010-12-06 04:16:23

您可以使用键值编码语法:

代码语言:javascript
复制
NSString *names=[NSArray arrayWithObjects:@"eeshaImage",@"mgribImage",@"aaserImage",@"dohorImage",...,nil];

for (int i=0; i<names.count; i++) {
      NSString *name=[names objectAtIndex:i];
      UIImage *image=[UIImage imageNamed:[NSString stringWithFormat:@"FirstViewBG_%dN.png",i
      [self setValue:image forKey:name];
 }
票数 3
EN

Stack Overflow用户

发布于 2010-12-06 04:04:35

我的一个同事喜欢这样的模式(未经测试):

代码语言:javascript
复制
 id *images[] = {
    &eeshaImage,
    &mgribImage,
    &aaserImage,
    &dohorImage,
    &shrogImage,
    &fajerImage
 };

 for (size_t i = 0;i < sizeof(images) / sizeof(*images);++i) {
    NSString *name = [NSString stringWithFormat:@"FirstViewBG_%zuN.png", i];
    *(images[i]) = [[UIImage imageNamed:name] retain];
 }

不过,你必须问问自己,仅仅为了让它更具可扩展性,付出的可读性代价是否值得。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4360837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档