2014-09-26 13 views
13

Tôi đang làm theo hướng dẫn sử dụng UIPickerController để vận hành máy ảnh. Tuy nhiên, khi triển khai UICollectionViewDatsaSource, tôi gặp lỗi khi nói rằng ViewController không tuân theo giao thức UICollectionViewDataSource.Loại 'ViewController' không tuân theo giao thức 'UICollectionViewDataSource'

class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, UIImagePickerControllerDelegate, UINavigationControllerDelegate 

Bất kỳ ý tưởng nào về cách khắc phục sự cố này?

Trả lời

2

Việc thêm định nghĩa giao thức vào lớp tùy chỉnh của bạn là không đủ. Bạn phải cung cấp các chức năng cần thiết của giao thức. Xem documenation của giao thức, bạn phải thực hiện ít nhất:

collectionView:numberOfItemsInSection: 
collectionView:cellForItemAtIndexPath: 
25

Bạn phải thực hiện hai phương pháp này trong ViewController lớp học của bạn:

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {} 

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {} 

T.B. - Nguyên mẫu chức năng của bạn phải khớp chính xác với các chức năng trên. (Loại bỏ bất kỳ '!' nếu có)

+1

đối với tôi nó là sau mỗi đối số trong hàm cellForItemAtIndexPath – Chris

+0

Có vẻ như với Swift, hành vi mặc định là lỗi màu đỏ khi không triển khai các phương thức giao thức được yêu cầu, trong khi đó trong Objective-C Xcode chỉ đưa ra cảnh báo màu vàng. Bạn phải ít nhất khai phá các phương pháp cần thiết để làm cho lỗi biến mất. –

-1

UICollectionViewDataSource có hai chức năng phải được triển khai (chúng là các chức năng bắt buộc của giao thức).

Để khắc phục được vấn đề, chỉ cần thực hiện hai chức năng như thế này: '!' enter image description here

Các vấn đề liên quan