无法解决错误“[__NSCFBoolean length]: unrecognized selector sent to instance”

Posted

技术标签:

【中文标题】无法解决错误“[__NSCFBoolean length]: unrecognized selector sent to instance”【英文标题】:Unable to solve the error "[__NSCFBoolean length]: unrecognized selector sent to instance" 【发布时间】:2016-09-30 14:17:30 【问题描述】:

代码

NSDictionary *dict = [self.catArray objectAtIndex:indexPath.row];
NSURL *U1 =[NSURL URLWithString:[dict objectForKey:@"img"]];

[DownloadManager downloadImageWithURL:[NSURL URLWithString:[dict objectForKey:@"img"]] completionBlock:^(BOOL succeeded, UIImage *image) 
    if (succeeded) 

        [cell.iconImgView setImage:image];

    
];

出现错误

[__NSCFBoolean length]: 无法识别的选择器发送到实例

【问题讨论】:

哪一行导致了这个问题?该错误似乎很明显,但它可能发生在不同的行...... 你在使用 Xcode 8 吗? 这可能意味着 dict[@"img"] 返回一个代表布尔值的 NSNumber 而不是您预期的 NSString 没有发布的代码调用length @Avi: URLWithString: 将在内部调用lengthNSDictionary *dict = @@"a":@(TRUE);NSURL *url = [NSURL URLWithString:[dict objectForKey:@"a"]]; 会导致同样的错误。 【参考方案1】:

您的问题在于这一行:

NSURL *U1 =[NSURL URLWithString:[dict objectForKey:@"img"]];

问题是由您假设的事实引起的:

[dict objectForKey:@"img"]

返回一个NSString,而实际上它返回一个代表布尔值的NSNumber

您需要找出字典中的数据不正确的原因,或者您需要使用正确的键来获取 URL。

【讨论】:

【参考方案2】:
  [ [dict objectForKey:@"img"] stringValue];                

使用上述代码获取字符串值

【讨论】:

以上是关于无法解决错误“[__NSCFBoolean length]: unrecognized selector sent to instance”的主要内容,如果未能解决你的问题,请参考以下文章

KernelBase.dll出现错误,无法解决

如何解决错误消息:“无法映射路径'/'。”

在解决构建路径错误之前,无法构建项目。

Apollo GraphQL Android 无法解决“无法解析 http 响应”错误

无法解决符号“窗口”错误

错误无法解决依赖项 grails