내 응용 프로그램을 Swift 3으로 변환하는 중입니다. UICollectionView에 대한 데이터 소스 및 위임을 설정하는 방법을 사용하여 문제가 발생했습니다. UITableViewCell 내부에 here을 설명합니다. 다음과 같이스위프트 3 제네릭 : UICollectionViewDatasource 설정 및 UITableViewCell의 UICollectionView 대리인이 문제가 발생했습니다.
코드는 다음과 같습니다
func setCollectionViewDataSourceDelegate<D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>>
(_ dataSourceDelegate: D, forRow row: Int) {
collectionView.delegate = dataSourceDelegate
collectionView.dataSource = dataSourceDelegate
collectionView.tag = row
collectionView.reloadData()}
을 그리고 그것은 알리는 경고를 던졌습니다 : 내가 제안 된 솔루션을 받아 들일 때
'protocol<...>' composition syntax is deprecated; join the protocols using '&'
는, 그것이 D: (UICollectionViewDatasource & UICollectionViewDelegate)
전화로 D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>
을 변경하고 대신 오류가 throw됩니다.
Expected a type name or protocol composition restricting 'D'
내 자신보다 스위프트 3 제네릭에 대한 더 나은 이해를 가진 누군가가 해결책을 제시 할 수 있다면 연결시켜야합니다.
없음 아이디어의 엑스 코드가 수정 단순히이 문제를 해결 제거, 괄호 안에 던져 제안 이유. 감사합니다! – michalronin