Swift 嵌套字典奇怪的行为
我想画一幅人物图 代码:Swift 嵌套字典奇怪的行为,swift,Swift,我想画一幅人物图 代码: class figures { var maps : [NSDictionary] init() { self.maps = [ [ "map" : [ [ "x" : -0.5, "y" : -0.5] ], "color" : UIColor.redColor()
class figures {
var maps : [NSDictionary]
init() {
self.maps = [
[
"map" : [
[ "x" : -0.5, "y" : -0.5]
],
"color" : UIColor.redColor()
],
[
"map" : [
[ "x" : 0, "y" : 0], [ "x" : 0, "y" : -1], [ "x" : -1, "y" : 0], [ "x" : -1, "y" : -1]
],
"color" : UIColor.blueColor()
],
[
"map" : [
[ "x" : 0, "y" : -0.5], [ "x" : -1, "y" : -0.5]
],
"color" : UIColor.yellowColor()
]
]
}
}
此代码有效,但我想在此字典中再添加一个数字,如:
[
"map" : [
[ "x" : -1, "y" : -0.5], [ "x" : 0.5, "y" : -0.5], [ "x" : -0.5, "y" : -0.5]
],
"color" : UIColor.cyanColor()
]
现在我得到了以下错误:
Could not find an overload for '-' that accepts the supplied arguments
但如果将上一个dict中x的-0.5替换为0.5,则再次有效
[
"map" : [
[ "x" : -1, "y" : -0.5], [ "x" : 0.5, "y" : -0.5], [ "x" : 0.5, "y" : -0.5]
],
"color" : UIColor.cyanColor()
]
发生了什么事?任何有帮助的人swift编译器都知道类似这样的大型语句存在问题。更好地逐步构建阵列:
self.maps.append([
"map" : [
[ "x" : -0.5, "y" : -0.5]
],
"color" : UIColor.redColor()
])
self.maps.append([
"map" : [
[ "x" : 0, "y" : 0], [ "x" : 0, "y" : -1], [ "x" : -1, "y" : 0], [ "x" : -1, "y" : -1]
],
"color" : UIColor.blueColor()
])
...
请显示出现错误的代码,因为您描述的图形可能会插入到许多地方。错误出现在self.map声明中。显示分配给self.map的所有文字。
self.maps
。愚蠢的问题:您没有错过新map元素之前的分隔逗号吗?这没有帮助。即使我将var q=[“map”:[[“x”:-1,“y”:-0.5],“x”:0.5,“y”:-0.5],“x”:-0.5,“y”:-0.5],“color”:UIColor.cyanColor()}也会抛出同样的错误