Objective c 如何消除通过NSManagedObjects迭代产生的警告?

Objective c 如何消除通过NSManagedObjects迭代产生的警告?,objective-c,cocoa,nsmutabledictionary,Objective C,Cocoa,Nsmutabledictionary,我有一个NSArrayController填充了NSMutableDictionary对象。下面的代码可以正常工作,但我想消除我得到的编译器警告集合表达式类型“NSManagedObject*”可能不响应“countByEnumeratingWithState:OnObjects:count:” 据我所知,之所以会出现此错误,是因为数组控制器中也可能有不同类型的对象,而这些对象没有键值。但在我的例子中,我只使用可变字典,所以应该可以 这是我的密码: - (IBAction)getlist:(id

我有一个
NSArrayController
填充了
NSMutableDictionary
对象。下面的代码可以正常工作,但我想消除我得到的编译器警告<代码>集合表达式类型“NSManagedObject*”可能不响应“countByEnumeratingWithState:OnObjects:count:” 据我所知,之所以会出现此错误,是因为数组控制器中也可能有不同类型的对象,而这些对象没有键值。但在我的例子中,我只使用可变字典,所以应该可以

这是我的密码:

- (IBAction)getlist:(id)sender{
    checkedchecks = 0;
    for (NSManagedObject *a in imagescontroller.arrangedObjects)
    {
        for (NSString* key in a) {

            if ([[NSString stringWithFormat:@"%@",[a valueForKey:key]] isEqualToString: @"1"])
            {
                checkedchecks += 1;
            }
        }
    }
    NSAlert *alert = [[NSAlert alloc] init] ;
    [alert setMessageText:[NSString stringWithFormat:@"%ld",(long)checkedchecks ]];
    [alert runModal];
}

我怎样才能摆脱这个恼人的警告呢?

如果它是一个
NSMutableDictionary*
,为什么要将
a
作为
NSManagedObject*
输入

for (NSMutableDictionary *a in imagescontroller.arrangedObjects)

可能就是您想要的。

如果是
NSMutableDictionary*
,为什么要将
a
作为
NSManagedObject*
键入

for (NSMutableDictionary *a in imagescontroller.arrangedObjects)

这可能就是你想要的。

*a是一种剩菜,已经修好了,谢谢你告诉我。而且你的改变也很有效!谢谢你(因为答案很明显,我现在觉得自己很愚蠢…)*a是一个剩菜,已经修好了,谢谢你告诉我。而且你的改变也很有效!谢谢你(因为答案很明显,我现在觉得自己很愚蠢…)