【发布时间】:2015-02-13 01:13:44
【问题描述】:
在尝试使用 CocoaPods 设置 SwiftAddressBook 时,编译时出现以下错误:
调用参数类型与函数签名不匹配! %V16SwiftAddressBook15MultivalueEntry.87* %0 %V16SwiftAddressBook15MultivalueEntry.85* 尾调用无效 @_TFFC16SwiftAddressBook22SwiftAddressBookPersonP33_ECEF355CFD253D8039C191CB27BDAECD24convertMultivalueEntriesFS0_U_Ss9AnyObject__FTGSqGSaGVS_15MultivalueEntryQ____9converterFQ_Q0__GSqGSaGS2_Q0____U_FGS2_Q__GS2_Q05MultivalueBook(%V187EntressAddress noalias sret %0, %V16SwiftAddressBook15MultivalueEntry.86* noalias %3, i8* %.fn.load, %swift.refcounted* %6, %swift.type* %8, %swift.type* %10), !dbg !8665 LLVM 错误:发现损坏的函数,正在编译 中止了!
它似乎在抱怨以下method:
private func convertMultivalueEntries<T,U : AnyObject>(multivalue : Array<MultivalueEntry<T>>?, converter : (T) -> U) -> Array<MultivalueEntry<U>>? {
return multivalue?.map { m -> MultivalueEntry<U> in
return MultivalueEntry(value: converter(m.value), label: m.label, id: m.id)
}
}
如果我放弃 CocoaPods 安装,而只是将源代码复制到我的主项目中,它编译得很好。
有没有一种方法可以简化此方法调用,以免 LLVM 编译器阻塞它?还是我的 CocoaPod 设置不正确?
【问题讨论】: