Ios CGSize类型的值不能在上下文中转换为bool
我正在计算高度和宽度的图像值,并检查imagsize是否可用。如果不是,那么我将为UIImageView大小指定一些值。但是,当我在if条件下检查imagesize时,我发现CGSize类型的值在上下文中不能转换为boolIos CGSize类型的值不能在上下文中转换为bool,ios,objective-c,cgsize,Ios,Objective C,Cgsize,我正在计算高度和宽度的图像值,并检查imagsize是否可用。如果不是,那么我将为UIImageView大小指定一些值。但是,当我在if条件下检查imagesize时,我发现CGSize类型的值在上下文中不能转换为bool CGSize imageSize = CGSizeMake(350 * widthRatio, height); if(imageSize){ mmageView=[[UIImageView alloc]init];
CGSize imageSize = CGSizeMake(350 * widthRatio, height);
if(imageSize){
mmageView=[[UIImageView alloc]init];
CGRect frame = mmageView.frame; frame.size = imageSize; mmageView.frame = frame;
}else{
mmageView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,150,150)];
}
CGSize不能是布尔值。您已经将一个CGSize与另一个CGSize进行了比较 您可以使用
CGSizeEqualToSize:
if(CGSizeEqualToSize(imageSize, TheSizeYouWantToCompare))
{
}
当您的代码以这种方式检查时
if(imageSize.height != 0 && imageSize.width != 0){
mmageView=[[UIImageView alloc]init];
CGRect frame = mmageView.frame; frame.size = imageSize; mmageView.frame = frame;
}else{
mmageView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,150,150)];
}
退一步,想想你在这里想做什么。你想检查什么情况?在什么情况下,尺寸会出乎意料
CGSize
是一个结构,而不是一个对象。这意味着,与对象不同,无法将其表示为nil(或未初始化)对象。但在您的情况下,似乎您真正想知道的是大小是否有效。假设有效大小为非零,则可以检查大小是否等于零大小({0,0})。可以使用CGSizeEqualToSize
函数执行此操作,该函数返回一个表示两个大小相等的布尔值。不能像if(imageSize)
那样使用CGSize作为布尔值。imageSize是CGSize,无法确定它是真是假。