Swift NSMutableArray 再添加一个数组

Swift NSMutableArray add one more array

问题是我第一次从 WebServices 获取数据,所以我在 TableView 上显示了这些数据然后用户向下滚动 tableview 然后再次调用 WebSevices 并再次将此数据添加到在数组中 但是当我尝试在 nsmutable 类型数组应用程序中再次添加数据时 crashing

这是我的代码。任何解决方案?

第一次数据加载正常

 var ary_mutable: NSMutableArray! 
 ary_mutable = NSMutableArray()
        ary_mutable=jsonResult as AnyObject as! NSMutableArray
                        self.tbl_T.reloadData();
                        self.tbl_T.delegate=self;
                        self.tbl_T.dataSource=self;

第二次加载数据并添加旧数组无效

var myArray :NSArray!
                myArray = jsonResult as AnyObject as! NSArray
 ary_mutable.addObject(myArray.objectAtIndex(0))

收到此错误

[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'

我也试过这个代码但没有用

ary_mutable.addObject(myArray)

您应该从不可变数组创建一个可变数组。这个:

ary_mutable=jsonResult as AnyObject as! NSMutableArray

不这样做,它只是从一种类型到另一种类型的静态转换。您必须构造一个新的 NSMutableArray,然后用所需的值填充它。

将代码更改为

var ary_mutable = NSMutableArray()

// everytime you receive a new data
ary_mutable.addObjectsFromArray(jsonResult as! [AnyObject])

替换此代码:

var myArray :NSArray!
myArray = jsonResult as AnyObject as! NSArray
ary_mutable.addObject(myArray.objectAtIndex(0))

使用此代码:

var myArray : NSMutableArray!
myArray = jsonResult as AnyObject as! NSMutableArray
ary_mutable.addObjectsFromArray(myArray as [AnyObject]);