2015-02-23 49 views

回答

1

项目objectfor提取是不可变的。您应该重复数组的indices

而且,该项目是AnyObject您无法将其传递给inout array: [AnyObject]参数而不投射。在这种情况下,你应该把它转换为可变[AnyObject]然后重新分配它:

func store(name: String, inout array: [AnyObject]) { 
    for i in indices(array) { 
     if var subarray = array[i] as? [AnyObject] { 
      store(name, &subarray) 
      array[i] = subarray // This converts `subarray:[AnyObject]` to `NSArray` 
      return 
     } 
    } 
    array.append(name) 
} 

var a:[AnyObject] = [1,2,3,4,[1,2,3],4,5] 
store("foo", &a) // -> [1, 2, 3, 4, [1, 2, 3, "foo"], 4, 5] 
+0

完美!非常感谢。我完全不理解它,但它有效;-) – user2156649 2015-02-23 13:27:25