inf和nan含义如下:
INF表示“无穷大”,是infinite的缩写。NAN表示“无效数字”,是Not a number的缩写。
2.inf是不会崩溃的,但nan是会崩溃的
本人出现的情况:
仔细研究后发现,原来是我获取的 UIImage 对象 等于 nil 了,以至于 image.size.height 值 和 image.size.width 的值,都拿不到了;
那么image的宽高比 计算出来的 imageView 的 imageHeight 的值也就 成 NaN 了。
//部分代码
[cell.photo sd_setImageWithURL:[NSURL URLWithString:ad.imageUrl] placeholderImage:[UIImage imageNamed:@"defaultImage"] completed:^(UIImage *image, NSError *error, EMSDImageCacheType cacheType, NSURL *imageURL) {
imgHeight = image.size.height * [UIScreen mainScreen].bounds.size.width / image.size.width;
weakCell.photo.image = image;
//这种情况就比较特殊了,因为从后台那里拿到的image为nil,导致高度计算不合法,并且image需重新实例出来才有
if (isnan(imgHeight)){
UIImage *image = [UIImage imageNamed:@"default