gpt4 book ai didi

objective-c - 向 CGPoint 类型参数发送 nil

转载 作者:太空狗 更新时间:2023-10-30 03:47:10 25 4
gpt4 key购买 nike

假设我有这个方法:

- (void)placeView:(UIView*)theView withCenterIn:(CGPoint)centerPoint;

所以我通过 View 和一个点来确定 View 的中心。

但碰巧我不需要指定中心,只需指定 View 即可。

传递“nil”会导致错误。

请建议如何跳过中心点。

请记住,我需要像这样使用该方法:

- (void)placeView:(UIView*)theView withCenterIn:(CGPoint)centerPoint{
if(centerPoint == nil){//and I understand that it's a wrong comparison, as I cannot pass "nil" to CGPoint
//set a random center point
}
else{
//set that view to the specified point
}
}

提前致谢

最佳答案

你不能使用nil作为“无点”指示符,因为它只针对对象,而CGPoint是一个struct . (正如 dasblinkenlight 已经说过的。)

在我的几何库中,我定义了一个“空”CGPoint 用作“无点”占位符,并定义了一个函数来测试它。由于 CGPoint 的组件是 CGFloat,而 float 已经具有“无效值”表示形式 -- NAN,在 math.h 中定义——我认为这是最好的使用方法:

// Get NAN definition
#include <math.h>

const CGPoint WSSCGPointNull = {(CGFloat)NAN, (CGFloat)NAN};

BOOL WSSCGPointIsNull( CGPoint point ){
return isnan(point.x) && isnan(point.y);
}

关于objective-c - 向 CGPoint 类型参数发送 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11987142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com