2014-12-03 4 views
0

셀을 선택하면이를 확인하고 싶습니다. 또한 액세서리가없는 다른 셀을 확인하고 싶습니다. 불행히도 accessoryType을 변경할 수 없다는 오류 메시지가 나타납니다. 그게 세포를 얻기 위해 visibleCells()을 사용하고 있기 때문입니까? 이 오류를 극복하는 방법은 무엇입니까?UITableViewCell의 'accessoryType'에 할당 할 수 없습니다.

나는 상수를 사용하지 않으려 고 노력했다. 나는 똑같은 오류가있다. UITableView & UITableViewCell 클래스 참조를 보았지만 나에게 도움이되는 것을 보지 못했습니다. 내 백업 계획은 피커 뷰를 사용하는 것이지만 디자인이기 때문에 테이블 뷰를 사용하는 것을 선호합니다.

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let cell = tableView.cellForRowAtIndexPath(indexPath) 
    let cells = tableView.visibleCells() 
    for oldCell in cells { 
     if(oldCell.accessoryType == UITableViewCellAccessoryType.Checkmark) { 
      oldCell.accessoryType = .None //Cannot assign to 'accessoryType' in 'oldCell' 
     } 
    } 
    cell!.accessoryType = .Checkmark 
    day = cell!.textLabel!.text! 
    self.tableView.deselectRowAtIndexPath(indexPath, animated: true) 
} 

답변

2

API documentation, visibleCells() 반환 [AnyObject]에서 찾고있다. Swift 형식 안전 기능으로 인해 accessoryTypeAnyObject에 설정할 수 없습니다. UITableViewCell이어야합니다.

은 ... 다음 시도

if let cells = tableView.visibleCells() as? [UITableViewCell] { 
    for oldCell in cells { 
    if oldCell.accessoryType == .Checkmark { 
     oldCell.accessoryType = .None 
    } 
    } 
}