2017-11-17 141 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。