Closed heeween closed 8 years ago
首先检查 Xcode 版本是否是最新版本。
之后检查项目代码中是否有相同方法从而造成冲突,再检查下这块儿的类型推断是否有问题。
这是IQKeyboardManagerSwift的代码 是跟IQKeyboardManagerSwift冲突了么
现在几乎是最新的了xcode了 昨天发布了7.3.1 我更新试下
private var textFieldInfoCache = NSMutableSet()
for infoDict in textFieldInfoCache {
if let view = infoDict.objectForKey(kIQTextField) as? UIView {
updateReturnKeyTypeOnTextField(view)
}
}
首先这个 textFieldInfoCache 不支持范性,然后在 for in 的时候,取出的 infoDict 应该是无法推断类型的。此时调用了 objectForKey,Xcode 应该会根据这个方法全局搜索,确定参数和返回类型的唯一性。引入 YYCache 时,这个猜测就会有歧义了。
其实如果你只引入 IQKeyboard,然后随便新建一个类,加一个 objectForKey:
的方法并返回一个有明确类型的对象,这个也会在这里报错,很容易验证。这里应该明确指定 infoDict 的类型。
明白了 方法名相同的问题 NSSet里面元素又无法推断类型
大神,写demo调试好了,现在拖入工程中就会报这个错误 ,为什么呢