目标C提示?

Maz*_*yod 0 setter for-loop objective-c instance-variables nsarray

我想替换这个:

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"];
Run Code Online (Sandbox Code Playgroud)

有一个for循环..我不知道如何在循环中一个接一个地调用ivars ..

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

谢谢!

Sam*_*hie 6

一个很好的方法是使用键值编码,正如本博文中所讨论的那样.尝试使用:

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];
Run Code Online (Sandbox Code Playgroud)

(UIImage如果我错了,你应该在上面的代码中替换实际的对象类型.)