我正在尝试从tableViewCell中删除一个单元格。我有一个由字符串值组成的plist。但是AnyObject似乎不包含removeAtIndex。以下是相关代码。
var citiesArray: AnyObject? = nil;
override func viewDidLoad() {
super.viewDidLoad()
//loading an array from a file
var documentList=NSBundle.mainBundle().pathForResource("EuropeanCapitals", ofType:"plist")
citiesArray = NSArray(contentsOfFile:documentList);
func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!) {
if (editingStyle == UITableViewCellEditingStyle.Delete) {
if let tv=tableView
{
citiesArray.removeAtIndex(indexPath!.row) /* Throws Error */
tv.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}
}
我尝试宣布citiesArray为NSArray?我得到了NSArray?没有名为'removeAtIndex'的成员。
答案 0 :(得分:7)
removeAtIndex()
不是NSArray或AnyObject上的方法。您可以尝试将NSArray转换为Swift数组,然后调用该方法。
if var citiesArr = citiesArray as? Array<AnyObject>{
citiesArr.removeAtIndex(0)
}
如果你想使用它, removeObjectAtIndex()
也可以在NSMutableArray上使用。