如何在[Int] Swift中存储颜色代码

时间:2017-09-05 09:12:14

标签: swift colors

我需要将颜色代码存储到class BaseClass: BaseProtocol { var baseText: String { get { return "" } } var baseNum: Int { return 0 } } class ClassA: BaseClass { } class ClassB: BaseClass { } var orderedSet = OrderedSet<BaseClass>() let objA = ClassA() orderedSet.add(objA) let objB = ClassB() orderedSet.add(objB) 数组中,但Java和Swift之间存在很大差异。让我知道如何将此代码转换为Swift。

Java代码

[Int]

使用Swift

int[] colorArgbs = {0xFF000000, 0xFFffffff, 0xFF00ffff, 0xFF6060ff};
System.out.println(Integer.valueOf(colorArgbs[0]) + " " + 
                    Integer.valueOf(colorArgbs[1]) + " " +
                    Integer.valueOf(colorArgbs[2]) + " " +
                    Integer.valueOf(colorArgbs[3]));

//Output is: -16777216 -1 -16711681 -10460929

我尝试删除上面的var test : [Int] = [0xFF000000,0xFFffffff,0xFF00ffff,0xFF6060ff] print(test) //Output: [4278190080, 4294967295, 4278255615, 4284506367] 字符,但我不喜欢结果。

FF

感谢。

1 个答案:

答案 0 :(得分:2)

您正在 64位设备上进行测试,默认情况下IntInt64,并且在2,147,483,647之后不会溢出。如果您想明确使用 32位 Int值,可以使用Int32

var test: [Int32] = [0xFF000000,0xFFffffff,0xFF00ffff,0xFF6060ff]
print(test) //Output: [-16777216, -1, -16711681, -10460929]

无法,因为这会产生编译器警告。

  

Integer literal&#39; 4284506367&#39;存储到&#39; Int32&#39;

时会溢出

为什么?

因为溢出不是好事,也不应该在产品中使用。请勿使用 32位 Int来存储较大的颜色代码。为此目的使用Int64