有什么方法可以迭代 Objective-C 方法的方法参数吗?我需要在很多方法中进行大量错误检查,并且希望将其自动化,而不是检查单独出现的每个值。
我知道这可以用于参数数量可变的方法。但我特别在寻找一种方法来使用采用固定数量参数的方法来做到这一点。
- (void)myMethodWithArg1:(NSString *)arg1 arg2:(NSNumber *)arg3 NSError:(NSError **)err {
// Get all arguments as array
NSArray *args; // ???
for (id arg in args) {
// Do stuff with args ....
}
}
最佳答案
您可以尝试以下方法。
- (void)myMethodWithArg1:(NSString *)arg1 arg2:(NSNumber *)arg3 NSError:(NSError **)err
{
NSArray *args = [[NSArray alloc] initWithObjects:arg1, arg2, err, nil];
for(id arg in args) {
if(arg) {
// Your code that you want to do with each arg here.
}
}
}
这里没有什么特别的,所有发生的事情是你用对象初始化一个 NSArray
对象作为你的参数,然后在 for 循环
中你是只是检查 arg
是什么,而不仅仅是 nil
或 null
。在那个 for 循环
中,你又一次用那个参数做你想做的事,并确定它是什么。
如果这不是您想要的,请发表评论,我会进行修改以尽可能提供帮助。
关于objective-c - 枚举方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16647584/