我有一个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”属性的实例?
答案 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中的对象...