【发布时间】:2014-08-29 16:08:15
【问题描述】:
我正在尝试在我的 Swift 类中使用 NSObject(NSKeyValueObserving),但我遇到了类型问题。 Xcode 抱怨它不理解以下代码中“context”参数的 CMutableVoidPointer 类型:
override func observeValueForKeyPath(keyPath: String!, ofObject object: AnyObject!, change: NSDictionary!, context: CMutableVoidPointer)
我使用 CMutableVoidPointer 是因为 Objective-C 定义将 'context' 参数类型为 void *。
我在编译时遇到的确切错误是:“使用未声明的类型 'CMutableVoidPointer'”。
我正在使用 Xcode Beta 3。
任何帮助将不胜感激。
【问题讨论】:
-
在 beta 3 中,他们替换了
CMMutableVoidPointer。现在使用UnsafePointer或ConstUnsafePointer。查看更改说明:adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/… -
谢谢。我看到。但是当我切换到 UnsafePointer 时,它给了我一个错误:对泛型类型“UnsafePointer”的引用需要 <...> 中的参数。为什么 void * 需要一个类型?
-
@samonderous:我认为是
context: UnsafePointer<()>。只需在 Xcode 中输入func observeValueForKeyPath并让自动补全完成它的工作! -
呃,应该只是再次输入它。我最初是为 Xcode Beta 编写的。谢谢大家。
-
@JochenBedersdorfer 或者只是“关闭”,因为它“离题”,次要原因是“这个问题是由无法再复制的问题或简单的印刷错误引起的。”跨度>
标签: ios objective-c swift void-pointers