objective-c如何摆脱由于迭代通过 NSManagedObjects 警告

标签: Objective-C
发布时间: 2016/10/4 5:50:47
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有 NSArrayController 充满 NSMutableDictionary 对象。下面的代码工作,没有任何问题,但我想摆脱我的编译器警告。Collection expression type 'NSManagedObject *' may not respond to 'countByEnumeratingWithState:onjects: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];
}

我如何能摆脱这恼人的警告?

解决方法 1:

你为什么键入 a 作为 NSManagedObject * 如果它是 NSMutableDictionary *

for (NSMutableDictionary *a in imagescontroller.arrangedObjects)

可能是你想要什么。

官方微信
官方QQ群
31647020