0

私は辞書を持っています。この辞書には配列があります。これらの配列には、サブビューで構成されるビューがあります。これらのサブビューの 1 つは uilabel です。その uilabel に到達する必要があります。

それを反復しようとすると、「コレクション式タイプの uiview が countbyenumaretingwithstate:objects:count に応答しない可能性があります」というエラーが表示されます。

私のコードは以下の通りです;

for(int i = 0; i<counterRow;i++)
{
    NSString *dictTempKey = [NSString stringWithFormat:@"row%d",i];

  NSMutableArray * tempArray =  [doctorAddition objectForKey:dictTempKey];

    for(UIView * subview in tempArray)
    {

        UIView * temp = subview;

        for(UIView * subview2 in (UIView*)temp)
        {
            if([subview2 isKindOfClass:[UILabel class]])
            {

            }

        }

    }

}
4

3 に答える 3

3

私はあなたがこれを見逃していると思います(UIView*)temp.subviews.

for(int i = 0; i<counterRow;i++)
{
    NSString *dictTempKey = [NSString stringWithFormat:@"row%d",i];

  NSMutableArray * tempArray =  [doctorAddition objectForKey:dictTempKey];

    for(UIView * subview in tempArray)
    {

        UIView * temp = subview;

        for(UIView * subview2 in (UIView*)temp.subviews)
        {
            if([subview2 isKindOfClass:[UILabel class]])
            {

            }

        }

    }

}
于 2013-08-13T06:35:56.667 に答える
1

次のことができます....

NSArray *values = [doctorAddition allValues];

[values enumerateObjectsUsingBlock:^(UIView *aView, NSUInteger index, BOOL *stop) {

    [aView.subviews enumerateObjectsUsingBlock:^(id aSubView, NSUInteger index, BOOL *stop) {

        if ([aSubView isKindOfClass:[UILabel class]]) {
            NSLog(@"Found UILabel: %@", aSubView);
        }
    }];
}];
于 2013-08-13T06:35:31.823 に答える