2014-10-28 89 views
0

我想使地图数据嵌套字典奇怪的行为

代码:

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() 
      ] 
     ] 
    } 
} 

这段代码是有效的,但我想这本词典添加1个数字,如:

 [ 
      "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 0.5 -0.5替换为X它再次有效

[ 
      "map" : [ 
       [ "x" : -1, "y" : -0.5], [ "x" : 0.5, "y" : -0.5], [ "x" : 0.5, "y" : -0.5] 
      ], 
      "color" : UIColor.cyanColor() 
     ] 

发生了什么事?任何人帮助

+1

请显示给出错误的代码,因为您描述的图可能会插入到许多位置。 – Kirsteins 2014-10-28 11:15:34

+0

错误位于self.map声明 – 2014-10-28 14:12:37

+0

显示您分配给'self.maps'的所有文字。 – Kirsteins 2014-10-28 14:16:48

回答

0

大型陈述这样一个迅速编译器已知问题。更好地构建您的阵列:

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() 
]) 

... 
+0

这没有帮助。即使我制作 var q = [“map”:[“x”:-1,“y”:-0.5], [“x”:0.5,“y”:-0.5], [ X”:-0.5, “Y”:-0.5] ], “颜色”:UIColor.cyanColor()] } 那抛出相同的错误 – 2014-10-28 14:10:55