2016-09-10 2 views
8

iOS 10에 도입 된 prefetchDataSources의 목적은 무엇입니까?UICollectionView iOS 10의 프리 페치 데이터 소스?

난 그냥 엑스 코드 (8) GM 종자에서 프로젝트를 실행 및 시작하기 오류 :

MessagesExtension[17902:1238603] *** Assertion failure in -[UICollectionView _createPreparedSupplementaryViewForElementOfKind:atIndexPath:withLayoutAttributes:applyAttributes:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3599.6/UICollectionView.m:2161 

enter image description here

답변

19

UICollectionView는 올해 prefetchDataSource 라는 새 속성을 얻는다. 기존 대리자 및 dataSource 속성과 마찬가지로 새 UICollectionViewDataSourcePrefetching 프로토콜을 구현하는 개체로 간단하게 설정할 수 있습니다.

이 프로토콜

은 아이폰 OS 10의 새로운 브랜드이며, 우리는 단지 하나의 새로운 기능 구현이 필요합니다이 함수가 호출 될 때

public func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath]) 

, 우리는 indexPaths 배열 우리가 '검사 할 수 있습니다 어떤 셀이 "곧 나옵니다"라는 것을 알기 위해 다시 건네 져서 세포가 우리가 데이터를 로딩하기 시작할 것입니다.

상세 이해를 위해 예와 기능 아래 사용 후 프로토콜 "UICollectionViewDataSourcePrefetching" 를 추가하고 링크 UICollectionViewDataSourcePrefetching

1

구현 프로토콜 "UICollectionViewDataSourcePrefetching"을의 ViewController 당신에

클래스의 ViewController : UIViewController에, UICollectionViewDataSourcePrefetching는 {

설정 스토리 보드에서 컬렉션보기로 대의원을 다음 또는 프로그래밍

에서의 ViewController의의 viewDidLoad 방법

collectionView을 (첨부 이미지 참조) .delegate = self

collectionView.dataSource = self

collectionView.prefetchDataSource =

이 예제를 참조하십시오 자기 - 내가 엑스 코드 8에서 8.1로 업데이트 한 후 동일한 문제가 있었다 https://github.com/Be-With-Viresh/CollectionViewWithPrefetch

enter image description here

2

. main.storyboard에서 (Outlets reference)를 지우면 해결할 수 있습니다. 나는 스토리 보드에 있었다 모든 CollectionView에 대한

Outtles references

이. 또한 단지처럼 내의 ViewController를 떠나 :

Class UIviewcontroller

클래스 (YourViewControllerName) : (YourViewControllerType), UICollectionViewDataSource, UICollectionViewDelegate을 {

}

그리고 내가 구축하고

내 응용 프로그램을 실행할 수 있습니다

그러나 UICollectionViewDataSourcePrefetching을 사용해야하는 경우 현재 UICollectionView를 삭제하고 나중에 새 UICollectioView를 만듭니다. Xcode 나 swift를 업데이트 한 후 UICollectionViewDataSourcePrefetching을 사용할 수 있습니다.