UIRefreshControl警告:CUICatalog:无效的资产名称或无效的比例因子

问题描述:

我几乎每次调用这个函数在我viewDidLoadUIRefreshControl警告:CUICatalog:无效的资产名称或无效的比例因子

- (void)addRefreshControl { 
    refreshControl = [[UIRefreshControl alloc] init]; 
    [refreshControl setAttributedTitle:[[NSAttributedString alloc] initWithString:NSLocalizedString(@"Pull to refresh", nil)]]; 
    [refreshControl addTarget:self 
         action:@selector(refreshView) 
      forControlEvents:UIControlEventValueChanged]; 

    [self setRefreshControl:refreshControl]; 
} 

我拉来刷新我就要警告在调试这个消息CUICatalog: Invalid asset name supplied: (null), or invalid scale factor: 2.000000

这不是打扰我的应用程序,但是,我想知道这个消息来自哪里并避免它。

所以基本上这与refreshcontrol无关,但与init'ing图像时使用的图像名称。 我曾经这样做:

[UIImage imageNamed:[someDictionary objectForKey:@"imageKey"]]; 

但我真正需要做的是这样的:

[UIImage imageNamed:[NSString stringWithFormat:@"%@",[someDictionary objectForKey:@"imageKey"]]]; 

因此,通过把它变成一个NSString,不再被产生的误差。当然你需要有一个@ 2x配对的图像,但即使你有这些,没有NSString'的名字,你仍然会得到这个错误。

检查您是否有配对的@ 2x图像。

如果您是故事板,还请检查图像是否在图像字段中有名称。

就在我身上发现图像是在故事板中,但在该字段中的名称已被清除。

+0

是的,我有一个配对的@ 2x图像,是的图像的名称是相同的。经过长时间的搜索+试验和错误,我发现你实际上需要NSString它的图像的名字出来的字典,就像我的。谢谢! – Martijn