2017-11-17 206 views
-1

我是一名學習Swift和xcode的新手,通過重寫最初在Javascript/PHP/MySql中開發的代碼。我在macOS工作,使用xcode中的故事板作爲我的開發基礎。目前我正在開發SplitView。在主方我有一個OutlineView。它有三個層次,外層是可擴展的,直到今天,它工作得很好。適當時,所有級別都已填充,可見並可擴展。就我所知,我有Swift(4.0)和xcode(9.1)。所以,今天我決定是時候從塞拉利昂更新到高山。我的主視圖現在已完全空白。納達。我試圖跟蹤問題並發現,使用xcode中的調試器,顯然,我的MasterViewController的NSOutlineViewDelegate擴展中的outlineView函數顯然根本沒有被調用!我檢查了Connections Inspector,並且與DataSource和Delegate的連接仍然完好無損。我在網上搜索,發現幾個人似乎與Cocoa綁定相關的近期問題隱約相關,但是我無法將他們的問題解決方案連接到我的,因爲我沒有使用Cocoa綁定...它在我的列表中,但是我還沒有。我所知道的唯一變化就是從Sierra到High Sierra。有什麼建議麼?謝謝!高Sierra內的NSOutlineViewDelegate無法正常工作

增加:我現在知道更多關於這個問題。

下面是前高塞拉利昂工作代碼:

類的ViewController:NSViewController {

@IBOutlet弱VAR web視圖:WebView中!

@IBOutlet weak var outlineView:NSOutlineView!

變種饋送=訂閱

讓dateFormatter = DateFormatter()

倍率FUNC viewDidLoad中(){

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網站上。在此之後,我對代碼進行了圖案化,並且教程和代碼都工作了......直到高Sierra。顯然,在高Sierra之後,系統會自動解析「feeds」並生成outlineView顯示。隨着高山脈的行爲改變,它不再自發地產生outlineView,無論是在教程還是我的項目。結果是一個空白的outLineView。

在加入教程評論,我現在發現別人也遇到了同樣的行爲,並建議代碼現在需要:

outlineView.reloadData(),

但我天真的實施該建議只是產生一個運行時錯誤,

「[一個NSView reloadData]:無法識別的選擇發送到實例」

+2

請格式化您的問題,看起來很難看 –

+2

顯示您的工作。除非你需要英語作文課的幫助,否則「不工作」不適用於除你之外的任何人。 –

+0

同意@ElTomato –

回答

0

只要確保當你開始一個新的「遊樂場」你有MacOS的作爲申請檢查而不是IOS。如果你有IOS檢查,Swift會導入UIKit(而不是Cocoa),這會導致你的問題。 GL。