Spa*_*Dog 1 objective-c nsmutablearray
我有这个数组,其中必须根据某些条件添加或不添加多个元素。通常我会做这样的事情:
NSMutableArray *myArray = [[NSMutableArray alloc] init];
[myArray addObject:@"aaa"];
[myArray addObject:@"bbb"];
if (flag)
[myArray addObject:@"flag"];
if (box)
[myArray addObject:@"box"];
[myArray addObject:@"xxx"];
if (x > 5)
[myArray addObject:@"smaller"];
if ([self isMenuVisible])
[myArray addObject:@"menu"];
... etc.
Run Code Online (Sandbox Code Playgroud)
但这显得令人困惑和复杂。
我可以想象我可以创建几种方法来做到这一点,但这将涉及传递字典、对象和条件数组等,但所有这些都显得比这更蹩脚和更复杂。
你们如何以更优雅的方式做到这一点?
我就不理会这个了。已经非常清晰易懂了。
但如果您真的不喜欢看到if.
// Not tested.
@implementation NSMutableArray (ext)
-(void)addObject:(NSObject*)obj when:(BOOL)condition {
if (condition) {
[self addObject:obj];
}
}
@end
....
[myArray addObject:@"aaa"];
[myArray addObject:@"bbb"];
[myArray addObject:@"flag" when:flag];
[myArray addObject:@"box" when:box];
[myArray addObject:@"xxx"];
[myArray addObject:@"smaller" when:(x > 5)];
[myArray addObject:@"menu" when:[self isMenuVisible]];
Run Code Online (Sandbox Code Playgroud)
但这可能会成为将来的维护负担。
| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |