使用方法参数检查数组对象是否等于另一个字符串(objective-C)?

使用方法参数检查数组对象是否等于另一个字符串(objective-C)?,objective-c,arrays,methods,Objective C,Arrays,Methods,我都是自学成才,所以请尽量减少技术上的麻烦。理论上,如果我有一个方法,它有一个参数,它是数组的名称。如何检查数组索引5是否等于“是”或“否”。我知道这是其中之一,因为它正在测试图像是否出现在veiw控制器中。以下是一个例子: -(void)methodName :(NSMutableArray *)arrayNameInMethod { if ( [NSMutableArray *(arrayNameInMethod) indexOfObject:5] == @"Yes"){ //Hide

我都是自学成才,所以请尽量减少技术上的麻烦。理论上,如果我有一个方法,它有一个参数,它是数组的名称。如何检查数组索引5是否等于“是”或“否”。我知道这是其中之一,因为它正在测试图像是否出现在veiw控制器中。以下是一个例子:

-(void)methodName :(NSMutableArray *)arrayNameInMethod {
if ( [NSMutableArray *(arrayNameInMethod) indexOfObject:5] == @"Yes"){
   //Hide a different picture assocciated with the Array
} else {
  //Unhide a different picture assocciated with the Array
};
另外,如何使用参数“ArrayNameMethod”替换对象。基本上:

if(Picture Clicked and picture is Unhidden) {
  [NSMutableArray *(differentArrayNameInMethod) replaceObjectAtIndex:5 withObject: @"True)
};
(这都是另一种方法)

注释2:不能以相同的方式使用参数,因为它是一个字符串。无法访问名称为字符串的数组


非常感谢你

我认为您需要的是一个字典,将名称映射到数组。我将给出一个基本实现:

@interface YourClass()
{
    NSMutableDictionary *_arrayMap;
}
@end

@interface YourClass

- (instancetype)init
{
     self = [super init];
     if (self) {
        // You might do this somewhere else, like viewDidLoad:
        _arrayMap = [NSMutableDictionary new];
     }
     return self;
}

- (void)someMethod
{
    // Some functionality to add a new array:
    // Note the array contains NSNumber and NSString objects:
    _arrayMap[@"sampleName"] = [@[ @(0), @"one", @(2.0), @"three", @(4), @(YES)] mutableCopy];
}

-(BOOL)checkForConditionInArrayNamed:(NSString *)arrayName
{
    BOOL retval = NO;
    NSMutableArray *array = _arrayMap[arrayName];
    if ([array count] > 5) {
        id obj = array[5];
        if ([obj isKindOfClass:[NSNumber class]])
            retval = [obj boolValue];
    }
    return retval
};
@end

然后调用
checkForConditionInArrayNamed:
检查命名数组的条件并相应地执行操作。

@“Yes”
@“No”
不是布尔值,它们是字符串
@YES
(无引号,全部大写)是一个
NSNumber
包装布尔值
YES
。方法参数与任何其他变量一样;您使用它的方式完全相同。但它不起作用。据我所知,我可以添加布尔值的唯一方法是使用Strings。您不能将任何
NSObject
-派生类添加到数组中;最常见的是
NSString
NSNumber
。我回家后会检查一下。它不起作用,或者我做错了什么(可能是晚些时候)。这就是我所说的:NSMutableArray*Name=武器[weaponName];if([NSArray*Name indexOfObject:5]=@“True”);即使我已经准备好了NSDictionary*武器,这也没用。