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]);
问题是我第一次从 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]);