-3

我做错了什么

    [mutableArry addObject:[NSNumber numberWithInt:questionNumber]];
    NSLog(@"mutableArry=%@",mutableArry);
      NSLog(@" question not complete  count=%d",mutableArry.count);

    if (mutableArry.count==25) {
        NSLog(@"25 question complete%d",mutableArry.count);
    }

    NSString *str= [NSString stringWithFormat:@"%d",questionNumber];
    NSLog(@"str=%@",str);

  //  array = [NSArray arrayWithObjects: @"Nicola", @"Margherita", @"Luciano", @"Silvia", nil];
  if ([mutableArry containsObject:str]) {  //YES
    NSLog(@"Results");
  }
4

5 回答 5

3

检查你的两行:

[mutableArry addObject:[NSNumber numberWithInt:questionNumber]];

[mutableArry containsObject:str]

解决方案:

将 questionNumber 也添加为 NSString 或查找一个数字 :) 应该会带来更多成功 ;)

NSMutableArray *ary = [NSMutableArray arrayWithObject:[NSNumber numberWithInt:25]];
NSString *str= [NSString stringWithFormat:@"%d",25];

if([ary containsObject:[NSNumber numberWithInt:25]])
    NSLog(@"ary contains object - number");

if([ary containsObject:str])
    NSLog(@"ary contains object - string");
else
    NSLog(@"ary doesn't contain object - string");

日志:
ary 包含对象 - 数字
ary 不包含对象 - 字符串

于 2013-06-21T10:40:53.447 回答
3

您尝试比较两个不同的对象。您的str对象不是您放入数组的对象,因此您可以对其进行比较。

所以你可以这样做:

for(NSString *stringFromArr in mutableArry) {
   if([stringFromArr isEqualToString:str])
     NSLog(@"Results");
}

仅供参考:您的命名约定不好...

于 2013-06-21T10:41:01.943 回答
1
if ([mutableArry containsObject:[NSNumber numberWithInt:questionNumber]])
{
    NSLog(@"Results");
}
于 2013-06-21T10:43:17.447 回答
0

您应该执行以下操作而不是最后一个 if 语句。

for (NSString *object in mutableArry) {
    if (object isEqualToString:str) {
        NSLog(@"Match");
    }
}
于 2013-06-21T10:42:07.677 回答
0

按照以下方式替换您的代码。您正在添加NSNumber实例并进行比较NSString

[mutableArry addObject:[[NSNumber numberWithInt:questionNumber]stringValue]];
NSLog(@"mutableArry=%@",mutableArry);
NSLog(@" question not complete  count=%d",mutableArry.count);

if (mutableArry.count==25) {
    NSLog(@"25 question complete%d",mutableArry.count);
}

NSString *str= [NSString stringWithFormat:@"%d",questionNumber];
NSLog(@"str=%@",str);

//  array = [NSArray arrayWithObjects: @"Nicola", @"Margherita",                                       @"Luciano", @"Silvia", nil];
if ([mutableArry containsObject:str]) // YES
{
    NSLog(@"Results");
}
于 2013-06-21T10:48:33.797 回答