在NSArray中更改属性

时间:2013-12-09 15:37:15

标签: ios objective-c properties uibutton nsarray

所以我有一个问题如何做到以下几点: 我有一个带对象的NSArray。

    NSArray *array = [[NSArray alloc] initWithObjects:object1, object2, nil];

object1和object2是UIButton的子类。这个子类有一个BOOL属性(BOOL prop;),它工作正常。

object1.prop = YES;
NSLog (@"What does the BOOL say? %@", object1.prop ? @"YES" : @"NO");

- >控制台输出YES。 Sothis一切正常,但我怎样才能改变NSArray中道具的价值?可以肯定的是[[array objectAtIndex:0] anf]; =是;由于语法不起作用,但我真的不知道如何做到这一点的语法。 如果有人帮助过我,我会爱的! 提前谢谢。

2 个答案:

答案 0 :(得分:0)

有许多相关方法可以避免编译器警告。最简单的内联'方法是(假设您的UIButton的子类称为MyButton):

((MyButton *) array[0]).prop = YES.

或(使用较旧的语法):

((MyButton *) [array objectAtIndex: 0]).prop = YES.

MyButton *button = (MyButton *) array[0];
button.prop = YES.

答案 1 :(得分:0)

[(YourSubclass *)[array objectAtIndex:0] setProp:YES];

通常,强制转换是可选的,因为NSArray包含id类型的对象。但是对于代码清晰度来说,它可能会对演员阵容造成伤害,因此您稍后会看到您打算做什么。