Swift的NSMutableArray添加一个更多的数组
问题是我第一次从WebServices
获取数据,所以我已经在TableView
上显示这些数据然后用户滚动向下tableview然后再次调用WebSevices
并再次将此数据添加到数组中,但是当我尝试再次添加数据在nsmutabletypes数组应用程序崩溃
这是我的代码。 任何解决scheme
第一次数据加载正在工作
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)
你应该从不可变的地方创build一个可变数组。 这个:
ary_mutable=jsonResult as AnyObject as! NSMutableArray
不这样做,它只是一种从一种types到另一种types的静态转换。 你必须构造一个新的NSMutableArray,然后用所需的值填充它。
改变你的代码
var ary_mutable = NSMutableArray() // everytime you receive a new data ary_mutable.addObjectsFromArray(jsonResult as! [AnyObject])
replace这个代码:
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]);