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