2013-02-14 76 views
0

我有一个NSArrayController填充NSMutableDictionary对象。下面的代码没有任何问题,但我想摆脱我得到的编译器警告。 Collection expression type 'NSManagedObject *' may not respond to 'countByEnumeratingWithState:onjects:count:' 据我所知,我得到这个错误,因为数组控制器可能也有不同类型的对象里面没有键值。但在我的情况下,我只使用可变字典,所以它应该没问题。由于通过NSManagedObjects迭代,我该如何摆脱警告?

这里是我的代码:

- (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]; 
} 

我怎么能摆脱这恼人的警告?

回答

4

为什么要输入a作为NSManagedObject *如果它是NSMutableDictionary *

for (NSMutableDictionary *a in imagescontroller.arrangedObjects) 

可能是你想要的。

+0

* a是一个剩余的,已经固定的,谢谢告诉。而且你的改变也很棒!谢谢(现在感觉非常愚蠢,因为答案很明显......) – sharkyenergy 2013-02-14 18:13:34