对于某些方法,我希望它们返回一系列值(从: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
范围?
答案 0 :(得分:8)
虽然你可以重用图形库中的几个“对象”中的一个(你可以从CGPoint
或CGSize
或他们的NS...
等价物中选择){{1}这些对象的背后是如此简单,以至于最好创建自己的对象:
struct
答案 1 :(得分:1)
是的,您甚至可以查看NSRange
和NSMakeRange
的定义(在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);