2017-01-13 7 views
1

몇 가지 이유로, 내 애플 리케이션은 이렇게하지 몇 달 후이 일을 시작했습니다. 이것은 OperationQueue (나는 항상 main을 사용하므로 스레드 1에서 완료되었습니다.)의 겉보기에 관계없는 사용 후에 나타났습니다. 당신이 볼 수 있듯이 NSCollectionView.makeItem이 때때로 EXC_BAD_ACCESS와 충돌하는 이유는 무엇입니까?

Six attempts to call the same collectionView.makeItem function, the fourth failing with reason: EXC_BAD_ACCESS

, 내가 연속으로 동일한 기능을 6 번 호출, 만 4 시간에 실패 않습니다. 나는 어떤 패턴이 ...

+0

더 많은 코드가 도움이 될 것이라고 확신하지만, 그 밖의 다른 게시물은 없습니다. 더 많은 것을 알 필요가 있으면 내가 할 수있는 것을 해줄거야. –

답변

0

내가 매우 광범위한 굴착 또는 테스트를하지 않은 볼 수 있지만, 이런 블록이 범인이었다 보인다

collectionView.performBatchUpdates({ 
    collectionView.reloadItems() 
}, completionHandler: { [weak self] _ in 
    // cleanup 
}) 

많은 일을 좋아하지 않는 컬렉션 뷰를 보인다 일괄 업데이트 컨텍스트 내부에서 insert + remove 이상. 이걸로 변경하면 충돌을 치유 한 것 같습니다.

collectionView.reloadItems() 
// cleanup