我想在对象集合中找到一个int

时间:2012-10-04 15:22:33

标签: iphone objective-c ios

我有两个对象:

  • “矩阵”,其属性为两个整数:“somma”和“tono”

  • “sello”,具有一个NSArray和一个UIImage属性。并有一个init方法,用13个不同的矩阵对象初始化数组。

在我的视图控制器中,我有20个不同“sello”对象的实例变量。和一个包含这20个对象的可变数组。

所以总共我在这20个物体中有260个“矩阵物”。

如果我有一个int的另一个实例变量并且等于34(例如),我怎样才能在260个“somma”之间找到34并获得该位置?

2 个答案:

答案 0 :(得分:0)

这样的东西?

NSNumber * num = [NSNumber numberWithInt:34];
for(Sello * sello in selloArray)
{
    if([sello.matrices valueForKey:@"somma"] containsObject:num])
        return YES;
    if([sello.matrices valueForKey:@"tono"] containsObject:num])
        return YES;
}
return NO;

答案 1 :(得分:0)

如果通过数组的名称,你的意思是sello对象数组中的sello对象的属性名称,我认为以下代码将起作用。这就是我在视图控制器代码中放入的内容(matrixArray是sello对象中矩阵对象的数组):

- (void)viewDidLoad {
    [super viewDidLoad];
    self.sello1 = [[Sello alloc] init];
    self.sello2 = [[Sello alloc] init];
    self.sello3 = [[Sello alloc] init];
    self.sello4 = [[Sello alloc] init];
    self.sello5 = [[Sello alloc] init];
    self.sello6 = [[Sello alloc] init];
    self.sello7 = [[Sello alloc] init];
    self.sello8 = [[Sello alloc] init];
    self.sello9 = [[Sello alloc] init];
    self.sello10 = [[Sello alloc] init];
    self.arr = [NSArray arrayWithObjects:self.sello1,self.sello2,self.sello3,self.sello4,self.sello5,self.sello6,self.sello7,self.sello8,self.sello9,self.sello10,nil];
}

-(void)viewDidAppear:(BOOL)animated {
    NSNumber *num = @15;
    for (Sello *aSello in self.arr) {
        for (Matrix *aMatrix in aSello.matrixArray) {
            if (aMatrix.somma == num.intValue) {
               NSInteger indx = [self.arr indexOfObjectPassingTest:^BOOL(Sello *obj, NSUInteger idx, BOOL *stop) {
                   return obj == aSello;
               }];
                NSLog(@"%@", [NSString stringWithFormat:@"sello%d",indx+1]);
            }
        }
    }
}