2015-02-23 24 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