目标C:NSRange或类似浮动?

时间:2013-07-25 15:23:23

标签: objective-c typedef nsrange

对于某些方法,我希望它们返回一系列值(从:235,到:245)。我使用NSRange作为返回值

来完成此操作
- (NSRange)giveMeARangeForMyParameter:(NSString *)myParameter;

只要返回值为integer范围(例如,位置:235,长度:10),此方法就可以正常工作。

但现在我遇到的问题是我需要返回float范围(例如位置:500.5,长度:0.4)。我在doc中读到NSRange是一个带有NSUIntegers的typedefed结构。是否可以为float范围键入另一个结构?如果是这样,是否可以使用NSMakeRange(NSUInteger loc, NSUInteger len)类似的方法来创建float范围?

4 个答案:

答案 0 :(得分:8)

虽然你可以重用图形库中的几个“对象”中的一个(你可以从CGPointCGSize或他们的NS...等价物中选择){{1}这些对象的背后是如此简单,以至于最好创建自己的对象:

struct

答案 1 :(得分:1)

是的,您甚至可以查看NSRangeNSMakeRange的定义(在NSRange.h中,最简单的方法就是{{1}上的'命令点击'在Xcode中命名,看看如何做到:

NSRange

答案 2 :(得分:0)

如果您只想要一个包含2个浮点数的现有结构,并且不介意包含GLKit,则可以使用GLKVector2。它还具有Make功能。

答案 3 :(得分:0)

随着IOS 9 SDK的推出,Apple添加了一个最符合OP主题的新结构:

UIFloatRange UIFloatRangeMake(CGFloat minimum, CGFloat maximum); // The range of motion for attached objects.

也有几个有用的辅助函数来比较范围:

BOOL UIFloatRangeIsInfinite(UIFloatRange range);
BOOL UIFloatRangeIsEqualToRange(UIFloatRange range, UIFloatRange otherRange);