0

我有两个对象:

  • “矩阵”具有两个整数作为属性:“somma”和“tono”

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

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

所以在这 20 个对象中总共有 260 个“矩阵对象”。

如果我有另一个实例变量是 int 并且等于 34(例如),我如何在这 260 个“somma”之间找到 34 并获得位置?

4

2 回答 2

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;
于 2012-10-04T15:46:36.810 回答
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]);
            }
        }
    }
}
于 2012-10-04T16:16:18.407 回答