所以我有一个问题如何做到以下几点: 我有一个带对象的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]; =是;由于语法不起作用,但我真的不知道如何做到这一点的语法。 如果有人帮助过我,我会爱的! 提前谢谢。
答案 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类型的对象。但是对于代码清晰度来说,它可能会对演员阵容造成伤害,因此您稍后会看到您打算做什么。