迭代UIView中的自定义对象并查找匹配的属性

时间:2012-02-21 15:17:12

标签: objective-c uiview

我有一个UIView,它加载了几个自定义的NSObjects(graphShape)。每个graphShape对象都有一个名为shapeName的属性。我可以像这样访问这个属性:

graphShape * myNewShape = [doShapes objectAtIndex:i];
NSLog(@"myNewShape Name: %@", myNewShape.shapeName);
//Logs: myNewShape Name: redshape 

NSArray(doShapes)包含View包含的一些shapeNames的列表(即:'redshape'和'yellowshape'),我需要更改匹配对象的另一个属性 如何在视图中循环遍历graphShape对象的所有实例,并找到具有“redshape”和“yellowshape”属性的实例?

2 个答案:

答案 0 :(得分:1)

你在找那个:

for (graphShape * shape in doShapes){
  if ( [shape.shapeName isEqualToString:@"redshape"] ){
    //do stuff
  }
}

答案 1 :(得分:1)

使用块获取符合条件的对象子集的另一种方法:

NSSet *setOfRedViewShapes = [doShapes objectsPassingTest:^(id obj, BOOL *stop){

 return [obj isEqualToString@"redShape"];

}];

然后,您可以迭代setOfRedViews中的对象...