Objective c 如何将-0定义为整数和-0<;目标C中的0?
这听起来可能很疯狂,但我正在处理一栋建筑的楼层数,它的楼层数为-0,楼层数为-0A、B和C等等 我的用户无法随机输入楼层数据。最后,我应该对这些楼层编号的数组进行排序。我发现即使我输入-0作为楼层编号并尝试对其进行排序。。它将其排序为0,因为对于计算机-0仍然是0Objective c 如何将-0定义为整数和-0<;目标C中的0?,objective-c,sorting,integer,Objective C,Sorting,Integer,这听起来可能很疯狂,但我正在处理一栋建筑的楼层数,它的楼层数为-0,楼层数为-0A、B和C等等 我的用户无法随机输入楼层数据。最后,我应该对这些楼层编号的数组进行排序。我发现即使我输入-0作为楼层编号并尝试对其进行排序。。它将其排序为0,因为对于计算机-0仍然是0 如何定义-0和-1根据定义,您不再使用整数作为-0!=0在整数领域中没有任何意义 因此,是的,您必须定义自己的类型并实现自己的排序规则。不过,简单地将它们存储为字符串,然后实现排序块对它们的数组进行排序是很简单的 您可以沿着使用浮动的
如何定义-0和-1根据定义,您不再使用整数作为
-0!=0在整数领域中没有任何意义
因此,是的,您必须定义自己的类型并实现自己的排序规则。不过,简单地将它们存储为字符串,然后实现排序块对它们的数组进行排序是很简单的
您可以沿着使用浮动的路径走下去,这样您就可以得到地板0和地板-0.1,然后圆形显示。但是这种恶作剧会让你后面的维护者一个接一个地骂你(有时候还可以) 根据定义,您不再以-0!=0在整数领域中没有任何意义
因此,是的,您必须定义自己的类型并实现自己的排序规则。不过,简单地将它们存储为字符串,然后实现排序块对它们的数组进行排序是很简单的
您可以沿着使用浮动的路径走下去,这样您就可以得到地板0和地板-0.1,然后圆形显示。但是这种恶作剧会让你后面的维护者一个接一个地骂你(有时候还可以) 到目前为止,所有的答案都在暗示您自己的类型/函数,可能还有字符串
字符串可以工作,但您可以借鉴浮点的思想,将它们存储为符号(布尔或偶数位标志)和大小(无符号整数类型,8或16位就足够了)
比较就是简单地比较符号,然后在需要时比较大小
对于这样的类型,可以使用struct
,它将为您提供与整数和实数类型相同的值语义,并避免对象分配
如果还有一个字母(“-0作为floor,-0A,B,C等等”)可以作为结构中的第三个字段,可能是achar
,并且仍然可以使用值语义
HTH到目前为止,所有的答案都是建议您自己的类型/函数,可能还有字符串
字符串可以工作,但您可以借鉴浮点的思想,将它们存储为符号(布尔或偶数位标志)和大小(无符号整数类型,8或16位就足够了)
比较就是简单地比较符号,然后在需要时比较大小
对于这样的类型,可以使用struct
,它将为您提供与整数和实数类型相同的值语义,并避免对象分配
如果还有一个字母(“-0作为floor,-0A,B,C等等”)可以作为结构中的第三个字段,可能是achar
,并且仍然可以使用值语义
HTH这里的关键是这些不再是整数。相反,它们是您自己的自定义类型(可能是字符串),具有自己的定义。您是否尝试过NSPredicate
?@OliverCharlesworth,但如果我将其定义为自定义类型。。难道我不需要定义自己的排序方法,而不把它们当作整数吗?@casillas newbie。。谢谢我要试试我能用它做什么@casillas一个谓词不会有帮助;一个int就是一个int就是一个int。这里的关键是这些不再是整数。相反,它们是您自己的自定义类型(可能是字符串),具有自己的定义。您是否尝试过NSPredicate
?@OliverCharlesworth,但如果我将其定义为自定义类型。。难道我不需要定义自己的排序方法,而不把它们当作整数吗?@casillas newbie。。谢谢我要试试我能用它做什么@casillas一个谓词不会有帮助;一个int是一个int是一个int。