Anyobject?没有名为“removeAtIndex”的成员

时间:2014-07-16 00:54:19

标签: swift

我正在尝试从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'的成员。

1 个答案:

答案 0 :(得分:7)

removeAtIndex()不是NSArray或AnyObject上的方法。您可以尝试将NSArray转换为Swift数组,然后调用该方法。

if var citiesArr = citiesArray as? Array<AnyObject>{
    citiesArr.removeAtIndex(0)
}
如果你想使用它,

removeObjectAtIndex()也可以在NSMutableArray上使用。