與Calling a global function which has the same name as a member function直接相關,我想知道如何在自己的模塊中調用全局函數。調用與成員函數具有相同名稱的全局函數第2部分
我有一個名爲解析的項目是一個Cocoa框架。我的Xcode目標的名稱是Parsing。
我在框架級別有一個名爲failure的函數,我試圖從一個具有相同名稱的類型的成員中調用它。
我明顯可以通過改變名稱來解決這個問題;但我更好奇爲什麼合格的名字不適合我。
我得到的編譯錯誤Use of unresolved identifier 'Parsing'
下面的代碼:
import Foundation
//import Parsing;
func failure<T>() -> ParserOf<T> {
return ParserOf { inp in nil }
}
class ParserOf<T> {
let _parser:String -> (T, String)?;
private init(_ p:String -> (T, String)?) {
_parser = p;
}
func parse(s:String) -> (T, String)? {
return _parser(s);
}
class func failure() -> ParserOf<T> {
return Parsing.failure(); // compile error
}
}
如果我取消了import Parsing
行,然後我得到的說Cannot load underlying module for 'parsing'
這看起來有點奇怪編譯器錯誤,因爲在這個名字的外殼錯誤消息與實際名稱的大小寫不匹配。
謝謝。我刪除了原始項目並從頭開始,現在它可以按照您的指示工作。我取消了我的進口產品線,一切正常。 – 2014-11-01 00:07:36