SwiftでUITableViewの内容が更新されない
tableviewである場所のファイルの一覧を出すようにしてるのですが、remove機能でそのファイルを消したときにtableviewの内容を消したいのです。しかしself.tableView.reloadData()をしても更新されません。なぜでしょうか、、、
解決方法を教えていただきたいです。
import UIKit
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{
@IBOutlet weak var tableView: UITableView!
struct Constants {
static var error: NSError?
static let manager = NSFileManager.defaultManager().contentsOfDirectoryAtPath("/", error: nil)!
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print(Constants.manager)
return Constants.manager.count
}
func tableView(table: UITableView, didSelectRowAtIndexPath indexPath:NSIndexPath) {
tableView?.deselectRowAtIndexPath(indexPath, animated: true)
let alertController = UIAlertController(title: "rewrite or delete", message: "which do you choose.", preferredStyle: .ActionSheet)
let firstAction = UIAlertAction(title: "ReWrite", style: .Default) {
action in println("Pushed rewrite")
var name = Constants.manager[indexPath.row]
system("cp -rf \(name)")
//書き換え
}
let secondAction = UIAlertAction(title: "Delete", style: .Default) {
action in println("Pushed Delete")
var name1 = Constants.manager[indexPath.row] as! String
NSFileManager.defaultManager().removeItemAtPath("/" + name1, error: nil)
//delete
}
let cancelAction = UIAlertAction(title: "CANCEL", style: .Cancel) {
action in println("Pushed cancel")
}
alertController.addAction(firstAction)
alertController.addAction(secondAction)
alertController.addAction(cancelAction)
presentViewController(alertController, animated: true, completion: nil)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
let manager = Constants.manager
cell.textLabel?.text = manager[indexPath.row] as! String
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableView.delegate = self
tableView.dataSource = self
}
override func viewWillAppear(animated: Bool) {
self.tableView.reloadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
1つめの削除したあとにmanager変数を取得し直して最新の状態に更新するコードを書くと
cannot assign to the result of this expression
とでます。なぜでしょうか。たびたびすみません