0
CoreDataデータでTableViewを作成しようとすると、このエラーが発生し、修正方法がわかりません。 CoreDataを別のクラスに保存しました。私もTableViewの権利を作成したかどうかはわかりません。CoreData/TableView - 'subscript'のあいまいな使用
let eventItem = eventItems! [indexPath.row]
問題は、あなたがAnyObject?
としてeventItems
を宣言したことで、AnyObject
は添字を受け付けない:あなたがこれを行うには、後に続いて
var eventItems: AnyObject?
:
class listEvents: UITableViewController {
var logTableView = UITableView(frame: CGRectZero, style: .Plain)
let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
var eventItems: AnyObject?
override func viewDidLoad() {
super.viewDidLoad()
var viewFrame = self.view.frame
viewFrame.origin.y += 20
viewFrame.size.height -= 20
logTableView.frame = viewFrame
self.view.addSubview(logTableView)
logTableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "EventCell")
logTableView.dataSource = self
fetchLog()
}
override func viewDidAppear(animated: Bool) {
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return eventItems!.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("EventCell") as! UITableViewCell!
let eventItem = eventItems! [indexPath.row] <-- Error here
cell.textLabel?.text = eventItem.name
return cell
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let eventItem = eventItems! [indexPath.row] <-- Error here
print(eventItem.id)
}
func fetchLog() {
let fetchRequest = NSFetchRequest(entityName: "Event")
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
do{
if let fetchResults = try managedObjectContext.executeFetchRequest(fetchRequest) as? [Event] {
eventItems = fetchResults
}
}catch{
print("ERROR")
}
}
}
「このエラー」とはどういう意味ですか?あなたはどんなエラーを出していますか? – Poorkenny