- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
当我尝试向不透明的 NSTreeController.arrangedObjects 发送消息时,我在 XCode 8.0/Swift 3.0 中收到了一个
对象。 Ambiguous use of 'children'
错误
这是一个展示用例的裸 Playground :
import AppKit
extension NSTreeController {
func whatever () {
let k = (self.arrangedObjects as AnyObject).children // error here
}
}
我尝试使用 AnyObject
作为底层 ObjC 对象的桥梁,我猜它应该能够通过任何方法调用。
Xcode 表示它找到了两个可以响应“子级”消息的候选对象:Foundation.XMLNode
和 AppKit.NSTreeNode
。
当然,显而易见的解决方案(转换为 NSTreeNode
)不起作用,因为 arrangedObjects
返回一个不透明的代理对象,而不是真正的 NSTreeNode
关于我们应该如何在 Swift 3 中使用 NSTreeController.arrangedObjects.children
有什么建议吗?
最佳答案
children
属性的两个候选者的类型不同:
Foundation.XMLNode:137:14: note: found this candidate
open var children: [XMLNode]? { get }
^
AppKit.NSTreeNode:12:14: note: found this candidate
open var children: [NSTreeNode]? { get }
^
您可以通过转换属性的值来解决歧义到预期的类型。在你的情况下:
let k = (self.arrangedObjects as AnyObject).children as [NSTreeNode]?
关于swift - "Ambiguous use of ' 子级 '"尝试在 Swift 3.0 中使用 NSTreeController.arrangedObjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39660939/
我正在尝试操作数组 Controller 中排列对象的值。到目前为止,我已经能够将对象拉入临时数组并操作它们,但我无法将数组设置到我的数组 Controller 。我的临时数组是一个 NSMutabl
我正在尝试将 NSTreeController 的“arrangedObjects”绑定(bind)到自定义 View 的“managedContent”(例如,以便它可以显示自定义轮廓)。在 set
如何在页面 Controller 中动态添加/删除对象?在应用程序生命周期内,所有示例都在 awakeFromNib 方法期间设置了 arrangedObjects 属性一次。 在我的应用程序中,我使
给定一个绑定(bind)到 IB 中的 moc 的 NSArrayController “objController”,下面的操作不应该起作用吗?鉴于它似乎不起作用,我如何从我的 NSArrayCon
我知道(或者至少我认为我知道)“选择”本质上是一个特定的排列对象,但是当我进行绑定(bind)时,我总是一次绑定(bind)一个对象。那么我如何知道何时使用“selection”以及何时使用“arra
当我尝试向不透明的 NSTreeController.arrangedObjects 发送消息时,我在 XCode 8.0/Swift 3.0 中收到了一个Ambiguous use of 'chil
我是一名优秀的程序员,十分优秀!