2017-11-17 7 views
-1

은 내가 원래 자바 스크립트/PHP/MySQL의에서 개발 한 코드를 재 작성의 발 빠른 학습 초보자와 엑스 코드입니다. 나는 개발을위한 나의 기반으로 xcode에서 스토리 보드를 사용하여 macOS에서 일하고 있습니다. 현재 SplitView를 개발 중입니다. 마스터 측에는 OutlineView가 있습니다. 그것은 3 개의 레벨을 가지고 있습니다. 바깥 두 개는 확장 가능하며, 오늘까지는 정상적으로 작동했습니다. 모든 수준은 채워지고 표시되며 확장 가능합니다. 내가 아는 한 Swift (4.0) 및 xcode (9.1)를 최신으로 업데이트했습니다. 그래서, 오늘 나는 Sierra에서 High Sierra로 업데이트 할 시간이라고 결정했습니다. 내 마스터보기가 이제 완전히 비어 있습니다. 나다. 문제를 추적하고 xcode의 디버거를 사용하여 내 MasterViewController에 대한 NSOutlineViewDelegate 확장의 outlineView 기능이 분명히 호출되지 않았 음을 발견했습니다! 연결 검사기를 검사했는데 DataSource 및 Delegate에 대한 연결은 여전히 ​​손상되지 않았습니다. 온라인으로 검색 한 결과 코코아 바인딩과 관련된 최근의 문제와 관련있는 사람이 몇 명 있었지만 코코아 바인딩을 사용하지 않았기 때문에 문제점 해결 방법을 연결할 수 없었습니다. 목록에 있지만 아직 없습니다. 변화 한 것을 내가 아는 유일한 것은 시에라에서 하이 시에라로 가고 있었다. 어떤 제안? 감사!NSOutlineViewDelegate 높은 시에라 작동하지

ADDED : 지금이 문제에 대해 좀 더 알고있다.

클래스의 ViewController를 :

여기에 높은 시에라 이전에 작동하는 코드입니다 NSViewController {

@IBOutlet 약한 var에 웹보기 : 웹보기!

약한 var에 outlineView을 @IBOutlet : NSOutlineView를!

VAR는 =이

피드 피드 할 수있는 viewDidLoad FUNC dateFormatter = DateFormatter()

오버라이드() {

super.viewDidLoad() 

dateFormatter.dateStyle = .short 

if let filePath = Bundle.main.path(forResource: "Feeds", ofType: "plist") { 
    feeds = Feed.feedList(filePath) 
    print(feeds) 
} 

}

코드는 OutlineView에 튜토리얼에서 가져옵니다 Ray_Wenderlich.com 사이트에 있습니다. 나는이 후 내 코드를 패턴 화했으며 튜토리얼과 내 코드는 High Sierra까지 작동했다. 분명히 High Sierra가 될 때까지는 시스템이 자동으로 "피드"를 구문 분석하고 outlineView 디스플레이를 생성합니다. High Sierra를 사용하면 동작이 변경되어 더 이상 자발적으로 outlineView가 생성되지 않으며 튜토리얼이나 프로젝트에서도 자동으로 생성되지 않습니다. 결과는 빈 outLineView였습니다.

outlineView.reloadData(),

하지만 내 순진 구현 : 자습서에 추가 코멘트에서

, 나는 지금 다른 사람이 같은 문제가 발생하고 코드는 이제 필요가 있다고 제안했다 것을 발견 단순히 런타임 오류가 발생하는 것을 제안,

"[NSView의 reloadData] : 인식 할 수없는 선택기 인스턴스로 전송"새로운 '놀이터'를 시작할 때 당신이로 맥 OS를 가지고

+2

이 질문의 형식을하시기 바랍니다, 그것은 –

+2

이 작업 표시를 알아보기 힘들 보인다. '작문하지 않음'은 영어 작문 수업에 대한 도움을 원하지 않으면 누구에게나 효과가 없습니다. –

+0

은 @ElTomato와 일치합니다. –

답변

0

그냥 확인 APPL IOS가 아니라 확인했습니다. IOS를 검사 한 경우 Swift는 UIKit (코코아 대신)을 가져 오므로 문제가 발생할 것입니다. GL.