cocoa - NSTableView 适用于 osx 10.0,但 NsTableViewDataSource 仅适用于 10.6?

标签 cocoa macos nstableview

我正在查看 NSTableViewDataSource 的文档,他们说该协议(protocol)仅在 osx 10.6 上可用。怎么会这样? NSTableViewDataSource 不是包含 NsTableView 的所有数据的对象吗?

最佳答案

补充一下@Zydeco 所写的内容,Objective-C 中的@protocol 在 10.5 之前没有@optical 属性。因此,Apple 无法使用 @protocol 来定义委托(delegate)方法,因为委托(delegate)对象选择仅实现委托(delegate)方法的一部分。苹果在过去使用了一种称为非正式协议(protocol)的东西,它只是 NSObject 类别。

既然他们引入了在 @protocol 中将某些方法标记为 @Optional 的方法,他们决定在 10.6 中让每个委托(delegate)都成为正式协议(protocol)。这样可以进行更多的编译时检查。但功能没有改变。

请参阅official documentation有关详细信息的协议(protocol)。

关于cocoa - NSTableView 适用于 osx 10.0,但 NsTableViewDataSource 仅适用于 10.6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2149580/

相关文章:

objective-c - Metal 中的多个渲染目标

iphone - UIGraphicsBeginImageContext 线程安全吗?

macos - 找出当选择 Mac 上下文菜单操作时正在调用什么系统调用或函数?

objective-c - 如何在 NSTableView 中重用单元格?

objective-c - 在 NSTableView 周围填充

macos - 绑定(bind)到值时,NSPathControl 将不会显示 placeholderString

macos - 如何将NSString写入NSView?

macos - 如何制作Spotlight索引减价文件?

python - 基于 Mac 的 Python GUI 库