Ios CGSize类型的值不能在上下文中转换为bool

Ios 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];

我正在计算高度和宽度的图像值,并检查imagsize是否可用。如果不是,那么我将为UIImageView大小指定一些值。但是,当我在if条件下检查imagesize时,我发现CGSize类型的值在上下文中不能转换为bool

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,无法确定它是真是假。