Xcode :(用户定义的运行时属性)带负值的范围。另类?

时间:2014-11-15 22:41:30

标签: xcode nsrange nsuinteger

我使用其他用户定义的运行时属性validRange创建了一个自定义UITextField,我可以在storyboard视图中设置它。 我使用此属性检查EndEditing方法以验证新的设置文本。 我工作得很好,直到我必须设置{-100,100}的有效范围 由于NSRange使用NSUInteger,因此不存在负值。

仍然能够实现这一目标的最佳方法是什么? 如果我使用CGSize代替NSRange会接受吗?

更新内容 Xcode只为我提供了以下用户定义的运行时属性的数据类型选择:

enter image description here

这意味着我无法定义一个新的结构来创建一个带有NSInteger的CustomRange。 由于Point,Size都是{NSInteger,NSInteger}数据类型,我考虑过使用它们。但这肯定是一种误用,所以我想知道是否有人知道一个更好的解决方案,因为滥用Point或Size来实现这一点。

作为另一种解决方法,我可以使用String,我手动将其拆分为自定义UITextField的方法,但是没有类型安全。

1 个答案:

答案 0 :(得分:0)

然后我建议你定义两个具有合适名称的NSNumber属性来代表NSRange值而不是滥用CGSize,因为使用CGSize会混淆其他读者/程序员,因为我们有一个说法,我们为其他人编写代码而不是为自己编写代码。

并且有一个NSNumber类方法如下

+ (NSNumber *)numberWithInteger:(NSInteger)value

允许您按预期包装有符号整数值。